Last active 17 hours ago

Revision 7b3a784e6ac46f49e5240d03d28fd57e1c5eeb90

urlref.pl Raw
1#!/usr/bin/env perl
2
3use 5.38.2;
4use strict;
5use warnings;
6
7use Getopt::Long qw(GetOptions);
8
9sub usage {
10 print("Usage: urlref.pl [--get-code|--help]\n
11 run without args to add URL\n");
12 exit 0;
13}
14
15my $getcode;
16
17GetOptions(
18 "get-code=s" => \$getcode,
19 "help" => \&usage,
20) or die "\nif you want to get a URL, supply a code: --get-code [CODE]\n";
21
22sub encode {
23 my @chars = ("A".."Z","0".."9","_");
24
25 my $string;
26 $string .= $chars[int(rand(@chars))] for 1..3;
27
28 return $string;
29}
30
31sub addurl {
32 my $url = <STDIN>;
33 chomp $url;
34 my $code = encode($url);
35
36 if (!length $url == 0) {
37 print("code is: $code\n");
38
39 my $filename = "links.txt";
40
41 open(my $fh, ">>", "$filename") or die "could not open $filename: $!";
42 print $fh "$code $url\n";
43 close $fh;
44
45 print("saved URL to file: $filename\n");
46 } else {
47 die("no URL given");
48 }
49}
50
51if ($getcode) {
52 my $filename = "links.txt";
53
54 open(my $fh, "<", "$filename") or die "could not open $filename: $!";
55 while(my $line = <$fh>) {
56 if($line =~ /^$getcode\s/) {
57 print("URL is: $line");
58 }
59 }
60 close $fh;
61} else {
62 addurl
63}