in reply to Re^2: Special formatting of error messages
in thread Special formatting of error messages
Let me break this down:
my $maxsize = 0; map {chomp; $maxsize = ($maxsize>length)?($maxsize):(length)} @lines;
If I were to write this using the 'Software Engineer' side of my brain, it would look like:
code hasn't been testedmy $maxsize = 0; foreach my $line (@lines) { chomp $line; #remove \n from the line my $lineLength = length($line); #Determine length of line #if line is longer than the longest #line I've seen so far then make it $maxsize. if($lineLength>$maxsize) { $maxsize = $lineLength; } }
It sounds like the part that is throwing you is the '?:' conditional operator:
$result = ($x > $y)?(14):(-5)
It's a one line conditional. It's documented in perldoc perlop (look for 'Conditional Operator'). The condition is evaluated and if true, the first value is assigned into $result (14) if it's false, the second value is assigned into $result (-5).
I hadn't done it this way before and I thought your question was a good opportunity to try it out. I've seen it before in code, just haven't had a chance to see if it suits me.
To any monks that have read this far. What's the minimal code for finding the lonest line in an array?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Special formatting of error messages
by Ronnie (Scribe) on Feb 02, 2005 at 15:29 UTC | |
by osunderdog (Deacon) on Feb 02, 2005 at 16:05 UTC | |
|
Re^4: Special formatting of error messages
by eric256 (Parson) on Feb 02, 2005 at 17:02 UTC | |
by osunderdog (Deacon) on Feb 02, 2005 at 18:07 UTC |