also see varicode.pl, ascii.html
# rot13 | 2017-07-14
use strict; use warnings;
while (<>) {
print $_ =~ tr/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM/r;
}
# bits to bytes, MSB first | 2017-07-14
use strict; use warnings;
my @bits;
while (<>) {
foreach my $bit (split //, $_) {
push @bits, $bit if $bit =~ /[01]/;
if (scalar(@bits) == 8) {
print pack('B8', join('', @bits));
@bits = ();
}
}
}
# bytes to bits, MSB first | 2017-07-14
use strict; use warnings;
while (<>) {
foreach my $char (split //, $_) {
print unpack('B8', $char);
}
}
# bytes to hexes, most significant nybble first | 2017-07-14
use strict; use warnings;
while (<>) {
foreach my $char (split //, $_) {
print unpack('H2', $char);
}
}
# colúmchop | 2017-07-14
use strict; use warnings; no warnings 'recursion'; use feature qw(say);
my $linelen = (defined($ARGV[0]) && $ARGV[0]=~/[0-9]+/) ? $ARGV[0] : 78;
while () {
if (length($_) <= $linelen) {
print $_;
} else {
my @lines = c($_, $linelen);
my $lastline = pop @lines; # last line has newline in it
foreach my $line (@lines) { say $line; }
print $lastline; # so it needs separate treatment
}
}
sub c {
my ($str, $len) = @_;
my $first = substr $str, 0, $len;
my $rest = substr $str, $len;
return ($first, length($rest) <= $len ? $rest : c($rest, $len));
}
# line count | 2017-07-14
use strict; use warnings; use feature qw(say);
my $lines = 0;
while (<>) { $lines++; }
say $lines;
Originally posted 2017-07-14 |
Last changed 2017-07-14