The sort function has extra magic to recognise bare sub names without them being parsed as a call, so you can write sort by_date @list_of_hashes where by_date is the name of a sub. I can’t think of any time I’ve used that feature – however:
use strict; use File::Spec::Functions; use Test::More tests => 5; my @file = do { opendir my $dh, curdir or die "$!"; readdir $dh; }; sub check(&) { not grep $_ eq updir, shift->( @file ) } ;ok check { sort no_upwards @_ } ;ok check { sort no_upwards( @_ ) } ;ok check { sort ( no_upwards @_ ) } ;ok check { sort ( no_upwards( @_ ) ) } ;ok check { sort +( no_upwards @_ ) } =begin output 1..5 not ok 1 # Failed test at t.pl line 13. not ok 2 # Failed test at t.pl line 14. not ok 3 # Failed test at t.pl line 15. ok 4 ok 5 # Looks like you failed 3 tests of 5.
I just lost half an hour tracking this down.
Makeshifts last the longest.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: The perils of DWIM
by ambrus (Abbot) on Oct 01, 2006 at 13:23 UTC | |
by Aristotle (Chancellor) on Oct 01, 2006 at 22:10 UTC |