Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

The perils of DWIM

by Aristotle (Chancellor)
on Oct 01, 2006 at 05:01 UTC ( #575747=perlmeditation: print w/ replies, xml ) Need Help??

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.

Comment on The perils of DWIM
Download Code
Replies are listed 'Best First'.
Re: The perils of DWIM
by ambrus (Abbot) on Oct 01, 2006 at 13:23 UTC

    I think I've got that with print as well. I tried to write something like print foo @bar; to mean print(foo(@bar)); but perl thought it was print {foo} @bar;.

      Yeah, but that is easier to disambiguate. I would never have expected #2 to parse as it does, and with print, it wouldn’t either.

      Makeshifts last the longest.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://575747]
Approved by McDarren
Front-paged by GrandFather
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (12)
As of 2016-05-05 19:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?