Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change

Re^4: Range Operator in If Statement

by Not_a_Number (Parson)
on Jan 06, 2012 at 11:15 UTC ( #946580=note: print w/replies, xml ) Need Help??

in reply to Re^3: Range Operator in If Statement
in thread Range Operator in If Statement

Could you explain...

Let me try. First,

[ 'A' .. 'F' ]

is a reference to an anonymous arrray (see references quick reference). To access, for example, the second element of this array, the syntax is:

[ 'A' .. 'F' ]->[1]

(You could also do ${ [ 'A' .. 'F' ] }[1] but I find the first form cleaner.)

Then, instead of hard-coding the array index, my snippet calculates it in the fashion indicated in LanX's post above. The only difference is that I've removed int() since perl happily does this part of the job for me when I use a floating point number as an array index.

To clarify, the following code, using a named array and an intermediate variable ($index), does the same thing:

my @array = ( 'A' .. 'F' ); my $ref_number = 42; # or whatever my $index = ( $ref_number - 1 ) / 8; my $bundle = $array[ $index ]; print $bundle;

hth, dave

Replies are listed 'Best First'.
Re^5: Range Operator in If Statement
by mmartin (Monk) on Jan 06, 2012 at 17:30 UTC
    Hey thanks for the explaination...

    I'll give it a try and see how it goes.

    Thanks Again,

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://946580]
talexb thinks the term 'cookie monster' is unnecessarily drogatory ;) and takes a cookie as well. Mmmm. Delicious cookies.
[davido]: A tool as pretentious as Test::Perl::Critic ought not fail to install because one of its dependencies failed to pull in List::MoreUtils.
[davido]: ...and

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (11)
As of 2017-04-25 16:02 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (458 votes). Check out past polls.