perl myprog.pl fred.txt - barney.txt
####
my $fname = '-';
...
...
my $INFILE;
if(!open ($INFILE, "<", $fname)) {
print "current file name: $fname\n";
die ".....$!";
}
####
current file name: -
.....No such file or directory ...
####
use strict;
use warnings;
if (!@ARGV) {
push @ARGV, '-';
}
foreach my $arg (@ARGV) {
print "$arg\n";
}
while(my $fname = pop @ARGV) {
my $INFILE;
if ($fname eq '-') {
$INFILE = *STDIN;
}else{
if(!open ($INFILE, "<", $fname)) {
say "current file name: $fname";
die ".....$!";
}
}
my @lines = <$INFILE>;
foreach (reverse @lines) {
print;
}
close $INFILE;
}
--output:---
data1.txt
-
data2.txt
D #start output from data2.txt
C
B
A #end output from data2.txt
x #start STDIN input
y
z #end STDIN input
zD #This started off as a blank line where I hit control-D for eof.
y
x
line 4 #start output from data1.txt
line 3
line 2
line 1 #end output from data1.txt