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
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
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
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 = )
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
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
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
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
>
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
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
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
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
"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
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
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
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
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:
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:
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++ ] = $_;
> | }
> |
> `---
.--[ 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
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
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.
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
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
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
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
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
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:
:[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?
>
---
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
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?
>
>
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,
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
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'
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
--- 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
36 matches
Mail list logo