In-Reply-To: Message from Johan Vromans <jvromans@squirrel.nl> of "02 Aug 2008 21:52:09 +0200." <m2r697urdi.fsf_-_@phoenix.squirrel.nl> > The question remains to what level it must be compatible with the > current <> implementation. When a file list is passed, I'd say that > @ARGV should remain untouched. But should ARGV, $ARGV and ARGVOUT > still reflect the status of the iterator, as they do with <> ? That was my own question exactly when first you posted the code. But since I didn't know what I thought the answer might/should be, I didn't ask it. My hunch, and it is only a hunch not a conviction, is that near-tranparent backwards compatibility is the only way to win over folks doing the various map{}@ARGV transformations in their day-to-day programming. I know I'm far from the only one, as we've seen. One cannot but wonder how long has it been in the standard documentation? Grepping for "map.*gz" in the pods and manpages of the following releases (yeah, so I'm a perl packrat, not just a perl historian :-) perl1.0 perl-5.003 perl5.005_55 perl-5.6.0-RC1 perl-5.9.2 perl4.036 perl-5.004 perl5.005_56 perl-5.6.0-RC3 perl-5.9.4 perl5.001 perl-5.005 perl5.005_57 perl-5.6.0 perl-5.10.0 perl5.001m perl5.005_02 perl5.005_63 perl-5.8.7 perl-5.002 perl5.005_54 perl5.5.650 perl-5.8.8 I find: perl-5.005/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl5.005_02/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl5.005_54/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl5.005_55/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl5.005_55/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl5.005_56/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl5.005_56/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl5.005_57/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl5.005_57/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl5.005_63/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl5.005_63/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl5.5.650/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl5.5.650/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl-5.6.0-RC1/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl-5.6.0-RC1/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl-5.6.0-RC3/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl-5.6.0-RC3/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl-5.6.0/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl-5.6.0/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl-5.8.7/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl-5.8.7/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl-5.8.8/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl-5.8.8/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl-5.9.2/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl-5.9.2/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl-5.9.4/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl-5.9.4/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; perl-5.10.0/pod/perlop.pod: @ARGV = map { /\.(gz|Z)$/ ? "gzip -dc < $_ |" : $_ } @ARGV; perl-5.10.0/pod/perlopentut.pod: @ARGV = map { /^\.(gz|Z)$/ ? "gzip -dc $_ |" : $_ } @ARGV; Perl 5.005 released on 1998-Jul-22, And the current day is 2008-Aug-02, slightly more than a decade later--something, I think, to bear in mind. And just how long *is* a decade in "internet-years", anyway? :-) Multiple generations of programmers, I think. And that's not even how long it's *worked*, just how long the documentation has egged people on to doing it. I know: culpa mea solaque, but I put it there to make things easier for people who woudln't've thought of it on there own. --tom