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

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.

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?

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 all is quiet...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (7)
As of 2017-07-20 21:00 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (315 votes). Check out past polls.