http://qs321.pair.com?node_id=725282


in reply to Please fix my writing style

Syntactical differences aside, that's almost exactly how I've been writing code for a long time with the exception of the my statement.
my $newyork; my $miami; if ( exp ) { statement; } else { statement; }
Although now with 5.10 you could do
while ( <DATA> ) { given( $_ ) { when ( $_ =~ /^NEW YORK:..../ ) { expression; } ... default { ... } } }
Which is pretty nifty, imo. I'm sure there's even more compact ways you can say that as well. As a matter of practice though, as long as I can come back in 6 months and figure out what I was doing in roughly 30 seconds, I personally don't care about the style. Though, for some inexplicable reason, this always bugs me and I find it thoroughly distracting.
while ( <DATA> ) { if ( expr ) { expr } }

Replies are listed 'Best First'.
Re^2: Please fix my writing style
by blazar (Canon) on Nov 23, 2008 at 23:24 UTC
    Although now with 5.10 you could do
    while ( <DATA> ) { given( $_ ) { when ( $_ =~ /^NEW YORK:..../ ) { expression; } ... default { ... } } }
    Which is pretty nifty, imo

    I personally believe that the most powerful characteristic of C<when>'s is the syntactic sugar it provides with implicit matches: which most of the times, actually happen to be smart matches - albeit not in this particular case, in which a similar beast that is a regular bind would be used anyway; thus you wouldn't do $_ =~ /REGEX/ but just as you wouldn't do in Perl quite about anywhere: because as usual you either want to use a full fledged generic variable and the binding operator, or the "topicalizer," i.e. $_, i.e. the pronoun "it" - but implicitly!

    --
    If you can't understand the incipit, then please check the IPB Campaign.