Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

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 line 13. not ok 2 # Failed test at line 14. not ok 3 # Failed test at 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
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?

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2015-05-30 23:31 GMT
Find Nodes?
    Voting Booth?

    In my home, the TV remote control is ...

    Results (601 votes), past polls