Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Re: Re: Perl parser tortured (was: Perl Idioms Explained)

by demerphq (Chancellor)
on Mar 04, 2004 at 10:55 UTC ( #333831=note: print w/replies, xml ) Need Help??


in reply to Re: Re: Perl parser tortured (was: Perl Idioms Explained)
in thread Perl Idioms Explained - my ($foo, $bar) = @{shift(@_)}{qw/ -foo -bar /}

It's really quite amazing how much just adding one set of brackets to a language helps.

Yeah, but its just really annoying how long it takes the keyboard manufacturers to actually put the new brackets somewhere useful.

IMO this is something you need to consider, and especially fromt he POV that keyboards vary quite a bit around the world. AltGr-7, AltGr-8, AltGr-9, Algr-10 are where the { [ ] } brackets live in germany which is already frustrating enough for someone that grew up in Canada. I dread having to type these new brackets. But no doubt you are already hip to this problem :-)


---
demerphq

    First they ignore you, then they laugh at you, then they fight you, then you win.
    -- Gandhi


Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://333831]
help
Chatterbox?
[Corion]: (this time on Unix)
[hippo]: Understood. I'll have to go through the code and see if it's doing anything fancy with ties, dual-vars or non-scalars. In the end, it's probably a bug though.
[Corion]: Aaah - you should be able to do this with overload, but I would hit somebody really hard if they constructed objects that are true but the empty string, and you not knowing about the domain knowledge where this makes sense
[Eily]: you could tie a variable into not having the same value each time, if you like to make people who try to debug your code facepalm
[Corion]: perl -wle 'package o; use overload q("") => sub {warn "str"; ""}, bool => sub{warn "bool"; 1}; package main; my $o={}; bless $o => o; print "Yay" if ($o && !length($o))'
[Corion]: But people writing such code should document the objects they construct and why it makes sense for an object to be invisible as string while being true in a boolean context
[hippo]: That's equal parts clever and horrendous.
[Eily]: the overload version wouldn't return true with "$x" && !length $x though, I guess

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (14)
As of 2017-07-27 13:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    I came, I saw, I ...
























    Results (413 votes). Check out past polls.