Re: A better way.

2005-08-02 Thread Dan Klose
Hi, I have gone for the following code: my %avs_dev = map{ $_ => [mean($hoa{$_}), dev($hoa{$_})] } keys %hoa; for (sort {$avs_dev{$a}[0] <=> $avs_dev{$b}[0]} keys %avs_dev) { print "$_, $avs_dev{$_}[0], $avs_dev{$_}[1]\n"; } I have never used MAP before... it looks handy! Works a treat. Th

Re: A better way.

2005-08-02 Thread Jeff 'japhy' Pinyan
On Aug 2, Dan Klose said: my %hash_of_arrays2; for (keys %hash_of_arrays) { my @array_of_data = exists($hash_of_arrays{$_}) [EMAIL PROTECTED] :(); Given that you're iterating over the list of keys in %hash_of_arrays, there's NO reason to be using exists() here. my @array_of_data

Re: A better way.

2005-08-02 Thread Wiggins d'Anconia
Dan Klose wrote: > Hello Everyone. > > I have the following code: > > > ### CODE BLOCK ### > > my %hash_of_arrays2; > Have you considered a hash of hashes? For me, given the sample below, I would prefer it, but obviously I haven't seen your whole script. > for (keys %hash_of_arrays) { > my

Re: A better way

2003-04-03 Thread R. Joseph Newton
Rob Dixon wrote: > > Unless the $target variable was meant simply to decide on a return, it makes more > > sense to assign its value--one task, one line, and check it for validity--another > > task > > entirely, on a line of its own. > > So presumably you're against > > while ( my $line = )

Re: A better way

2003-04-03 Thread Rob Dixon
R. Joseph Newton wrote: > Paul Johnson wrote: > > To my mind, > > return if $target eq "MAIN"; > > at the top of a sub is a lot more helpful than making me search all the > > way down to the botttom to see if there is anything after the conditional. > > > > And it's probably a lot less likely tha

Re: A better way

2003-04-03 Thread R. Joseph Newton
Paul Johnson wrote: > R. Joseph Newton said: > > >The only thing it > > lacked was a meaningful return value. Since the getTarget function > > provided enough information to decide in favor of an early exit, this > > information should proba

Re: A better way

2003-04-03 Thread Paul Johnson
R. Joseph Newton said: >The only thing it > lacked was a meaningful return value. Since the getTarget function > provided enough information to decide in favor of an early exit, this > information should probably be passed on more explicitly

Re: A better way

2003-04-03 Thread R. Joseph Newton
Paul Johnson wrote: > To my mind, > return if $target eq "MAIN"; > at the top of a sub is a lot more helpful than making me search all the > way down to the botttom to see if there is anything after the conditional. > > And it's probably a lot less likely that the next person to edit that sub >

Re: A better way

2003-04-03 Thread R. Joseph Newton
Rob Richardson wrote: > Stefan, > > Personally, I'd prefer: > > if (target ne "MAIN") > { >#do lots of other stuff > } > > I think general programming practice discourages multiple return points > in subroutines. > > RobR I disagree. While one should certainly exercise care when making an ea

Re: A better way

2003-04-03 Thread Rob Dixon
Paul Johnson wrote: > Rob Dixon said: > > "Rob Richardson" <[EMAIL PROTECTED]> wrote in message > > news:[EMAIL PROTECTED] > > > Stefan, > > > > > > Personally, I'd prefer: > > > > > > if (target ne "MAIN") > > > { > > >#do lots of other stuff > > > } > > > > > > I think general programming pra

Re: A better way

2003-04-03 Thread Paul Johnson
Rob Dixon said: > > "Rob Richardson" <[EMAIL PROTECTED]> wrote in message > news:[EMAIL PROTECTED] >> Stefan, >> >> Personally, I'd prefer: >> >> if (target ne "MAIN") >> { >>#do lots of other stuff >> } >> >> I think general programming practice discourages multiple return points >> in subro

Re: A better way

2003-04-03 Thread Rob Dixon
Brian Ling wrote: > Thanks for that, I had not released you could effectively use the > getTarget() return value twice :-) > > > well this works: > > return if 'MAIN' eq (my $target = getTarget()); > > > /Stefan Personally, I prefer: ( my $target = getTarget() ) eq 'MAIN' and return; as I b

Re: A better way

2003-04-03 Thread Rob Dixon
"Rob Richardson" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Stefan, > > Personally, I'd prefer: > > if (target ne "MAIN") > { >#do lots of other stuff > } > > I think general programming practice discourages multiple return points > in subroutines. Yes, and it's no more dan

RE: A better way

2003-04-03 Thread Brian Ling
Thanks for that, I had not released you could effectively use the getTarget() return value twice :-) >well this works: >return if 'MAIN' eq (my $target = getTarget()); >/Stefan BBCi at http://www.bbc.co.uk/ This e-mail (and any attachments) is confidential and may contain personal views wh

Re: A better way

2003-04-03 Thread Rob Richardson
Stefan, Personally, I'd prefer: if (target ne "MAIN") { #do lots of other stuff } I think general programming practice discourages multiple return points in subroutines. RobR __ Do you Yahoo!? Yahoo! Tax Center - File online, calculators, fo

Re: A better way

2003-04-03 Thread Stefan Lidman
Brian Ling wrote: > > Hi List, > > I have the following bit of code, that works but doesn't feel like the > best way, can anyone think of a better neater answer maybe a one liner? > > my $target = getTarget(); > If ( target eq "MAIN" ) { return } > #do lots of other stuff with value of target w

Re: A better way, a perl way?

2003-01-23 Thread Jeff 'japhy' Pinyan
On Jan 22, david said: >> @data_ = map { (my $copy = $_) =~ s/^ //; $copy } @data; > >s/^ // for(@data_ = @data); Sigh. I usually do that. I was a little slow on the idiom-uptake. -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ RPI Acacia brother #734 http:

Re: A better way, a perl way?

2003-01-22 Thread david
Jeff 'Japhy' Pinyan wrote: > > If you DON'T want that, you'd have to do: > > for (@data) { > (my $copy = $_) =~ s/^ //; > push @data_, $copy; > } > > Or something to that effect. Here's a one-liner: > > @data_ = map { (my $copy = $_) =~ s/^ //; $copy } @data; > a bit shorter:

RE: A better way, a perl way?

2003-01-22 Thread Bob Showalter
Frank Wiles wrote: > .--[ Jerry Preston wrote (2003/01/22 at 11:59:14) ]-- | > | I am looking for a better way, a perl way for the following: | > | foreach ( @data ) ) { > |s/^ //; > |$data_[ $jp++ ] = $_; > | } > | > `---

Re: A better way, a perl way?

2003-01-22 Thread Frank Wiles
.--[ Jerry Preston wrote (2003/01/22 at 11:59:14) ]-- | | I am looking for a better way, a perl way for the following: | | foreach ( @data ) ) { |s/^ //; |$data_[ $jp++ ] = $_; | } | `- I'm assumi

Re: A better way, a perl way?

2003-01-22 Thread Jeff 'japhy' Pinyan
On Jan 22, Jerry Preston said: >I am looking for a better way, a perl way for the following: > >foreach ( @data ) ) { > s/^ //; > $data_[ $jp++ ] = $_; >} You do realize that you're modifying the elements in @data as well, right? So that, unless $jp starts at some value other th

Re: A better way to handle array index?

2002-10-21 Thread Jenda Krynicky
From: chris <[EMAIL PROTECTED]> > I am looking for a less cryptic way to handle array index. > > most cryptic > $array[0] > > better > use constant NAME => 0; > $array[NAME] This all depends on what do you want to do with the data structure. But most probably you do want to use a hash.

RE: A better way to handle array index?

2002-10-21 Thread Jenda Krynicky
From: "Johnstone, Colin" <[EMAIL PROTECTED]> > for example I read my form variables into a hash for processing. > > I then reference them by the form fieldname. > > #read STDIN, $PostData, $ENV{'CONTENT_LENGTH'}; > > #print "post data =$PostData"; > > #postdata will look like this > #[EMAIL P

RE: A better way to handle array index?

2002-10-20 Thread Timothy Johnson
And if you're really stuck with using arrays, you can always: my @bases = (); my $first = 0; $bases[$first] = 'who'; -Original Message- From: Johnstone, Colin To: 'chris' Cc: '[EMAIL PROTECTED]' Sent: 10/19/02 5:47 PM Subject: RE: A better way to h

RE: A better way to handle array index?

2002-10-19 Thread Johnstone, Colin
That would be a hash. (or an associative array) for example I read my form variables into a hash for processing. I then reference them by the form fieldname. #read STDIN, $PostData, $ENV{'CONTENT_LENGTH'}; #print "post data =$PostData"; #postdata will look like this #[EMAIL PROTECTED]&radActi

RE: a better way?

2002-09-26 Thread Jeff 'japhy' Pinyan
On Sep 26, Jerry Preston said: >I guess it an old 'c' habit. I do this to check each line for the item I am >looking for. > >I there a better way and why? my $found = 0;# have we found 'jeff'? while () { # reads ONE LINE at a time, and stores it in $_ if (/jeff/) { # if the line

RE: a better way?

2002-09-26 Thread Nikola Janceski
From: Jerry Preston [mailto:[EMAIL PROTECTED]] > Sent: Thursday, September 26, 2002 11:51 AM > To: [EMAIL PROTECTED] > Cc: Beginners Perl > Subject: RE: a better way? > > > Jeff, > > I guess it an old 'c' habit. I do this to check each line > for the ite

RE: a better way?

2002-09-26 Thread Jerry Preston
To: Jerry Preston Cc: Beginners Perl Subject: Re: a better way? On Sep 26, Jerry Preston said: >Is there a better way? A Perl way? > > $j = 0; > while( ) { >chomp; >( $lots[ $j++ ] ) = $_; That's usually written as push @lots, $_; > } Well, you could do:

RE: a better way?

2002-09-26 Thread Nikola Janceski
:[EMAIL PROTECTED]] > Sent: Thursday, September 26, 2002 11:36 AM > To: Jerry Preston > Cc: Beginners Perl > Subject: Re: a better way? > > > but why do you need the file in an array? > ---

Re: a better way?

2002-09-26 Thread Jeff 'japhy' Pinyan
On Sep 26, Jerry Preston said: >Is there a better way? A Perl way? > > $j = 0; > while( ) { >chomp; >( $lots[ $j++ ] ) = $_; That's usually written as push @lots, $_; > } Well, you could do: chomp(@lines = ); but why do you need the file in an array? -- Jeff "japhy" Pi

RE: a better way?

2002-09-26 Thread Nikola Janceski
open(FILE, "yourfile") or die "$!"; chomp(my(@lots) = ); close FILE; > -Original Message- > From: Jerry Preston [mailto:[EMAIL PROTECTED]] > Sent: Thursday, September 26, 2002 11:30 AM > To: Beginners Perl > Subject: a better way? > > > Hi! > > Is there a better way? A Perl way? > >

Re: A better way to list variable names in report format?

2002-09-12 Thread chris
Thank you. Now I can quit the horizontal scrolling. On Wed, 11 Sep 2002 20:52:59 -0400, [EMAIL PROTECTED] (Bob Showalter) wrote: > >I know beans about formats, but perldoc perlform contains this statement: > >"The expressions may be spread out to more than one line if enclosed in >braces. If so,

Re: A better way to list variable names in report format?

2002-09-11 Thread chris
Oops. $$ @$myStuff{qw/column1 column2 column3/}; is definitely an improvement but my list is very long. I think I will have to assign new variables just to make the listing in multiple lines. Horizontal scrolling to read off-page code is not nice. On Wed, 11 Sep 2002 16:42:10 -0700, [EM

Re: A better way for seeding an annoymous hash

2002-08-08 Thread Peter Scott
At 11:44 AM 8/8/02 -0700, drieux wrote: >On Thursday, August 8, 2002, at 11:04 , Peter Scott wrote: > >>At 10:38 AM 8/8/02 -0700, drieux wrote: >>>I'm not sure the average normal person would feel at home with say: >>> >>> %{$by_os{$os_key}}->{$_}++ for(@$found); >> >>Especially since it'

Re: A better way?

2001-06-22 Thread iansmith
On Fri, 22 Jun 2001, Tim Musson wrote: > Is this a better way? > > if (($Var eq "String") || ($Var2 =~ /$STRING/)) { > &Sub($Var1); > } I usually write... if ($Var eq "String" or $Var2 =~ /$STRING/) { ...as I like the diffrent precidence of the 'or' operator. You can also leave off the & i

Re: A better way?

2001-06-22 Thread Paul
--- Tim Musson <[EMAIL PROTECTED]> wrote: > Hey all, > > I have this code fragment. > > if ($Var eq "String") { > &Sub($Var1); > } elsif ($Var2 =~ /$STRING/) { > &Sub($Var1); > } > > Is this a better way? > > if (($Var eq "String") || ($Var2 =~ /$STRING/)) { > &Sub($Var1); > } I