cbeckley has asked for the wisdom of the Perl Monks concerning the following question:
I have input from a "df -k /home" that looks like this:
filesystem kbytes used avail capacity mounted on /dev/dsk/c0b0t0d0s4 12209400 5496486 6712914 46% /home
And a function that parses it for the capacity (creatively named no less):
sub parse_capacity { my ($df_output) = @_; my $capacity; if ($df_output =~ m[(\d+)%\s+/home$]) { $capacity = $1; } else { $capacity = 'Match Error'; } return $capacity; }
This works. I should be done right? Noooo, I'm looking for a more idiomatic way to rewrite the "if regex" for purely aesthetic reasons.
I tried:
($df_output =~ m[(\d+)%\s+/home$]) ? $capacity = $1 : $capacity = 'Mat +ch Error';
Which returns 'Match Error' every time.
Why does the ternary statement not work?
What are the some of the more Perlish ways to rephrase that if statment?
Thanks,
cbeckley
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: regex syntax and idomatic Perl
by huck (Prior) on Mar 21, 2017 at 02:43 UTC | |
by cbeckley (Curate) on Mar 21, 2017 at 13:33 UTC | |
by AnomalousMonk (Archbishop) on Mar 22, 2017 at 21:50 UTC | |
by haukex (Archbishop) on Mar 22, 2017 at 22:04 UTC | |
by cbeckley (Curate) on Mar 22, 2017 at 23:33 UTC | |
| |
by cbeckley (Curate) on Mar 23, 2017 at 02:26 UTC | |
Re: regex syntax and idomatic Perl
by AnomalousMonk (Archbishop) on Mar 21, 2017 at 08:53 UTC | |
by cbeckley (Curate) on Mar 21, 2017 at 14:02 UTC | |
Re: regex syntax and idomatic Perl
by tybalt89 (Monsignor) on Mar 21, 2017 at 02:46 UTC | |
Re: regex syntax and idomatic Perl
by NetWallah (Canon) on Mar 21, 2017 at 02:50 UTC | |
Re: regex syntax and idomatic Perl
by Monk::Thomas (Friar) on Mar 21, 2017 at 13:49 UTC | |
Re: regex syntax and idomatic Perl
by Anonymous Monk on Mar 21, 2017 at 06:43 UTC | |
by Monk::Thomas (Friar) on Mar 21, 2017 at 13:56 UTC |