Trying to replicate example 4 in "Larry's filename fixer"
(Perl Cookbook, 9.9), I've tried several variants of his expr:
'print "$_: "; s/foo/bar/ if <STDIN> =~ /^y/i'
and get,for example, the following error:
The system cannot find the file specified.
Running ActivePerl-5.24 on W10, here's the code:
#!/usr/bin/perl -w
use strict;
use warnings;
use 5.010;
# Larry's filename fixer [Cookbook 9.9, mod crt for ActiveState/W10]
my $op = shift or die
"Usage: perl rename expr [files]\n";
chomp(@ARGV = <STDIN>) unless @ARGV;
@ARGV = map glob, @ARGV;
for (@ARGV) {
my $was = $_;
eval $op;
die $@ if $@;
rename ($was, $_) unless $was = $_;
}
Where have I gone astray?