我的问题是如何从哈希(Hash)打印一条特定的行。到目前为止,代码(谢谢Joel Berger)是:
#!/usr/bin/env perl
use strict;
use warnings;
use LWP::Simple;
my $content = get('http://temptrax.itworks.com/temp');
my %probes = $content =~ /Probes*(d)|s*(-?[d.]+)/gx;
foreach my $probe (sort keys %probes) {
print "$probe => $probes{$probe}n";
}
其输出是:
1 => 74.0
2 => -99.9
3 => 74.4
4 => 68.1
如何获得特定的打印行?例如,如果我排名第1,则只有第1行会打印。感谢您看看这个。
更新:我终于能够在阅读后弄清楚
#!/usr/bin/env perl
use v5.10.1;
use strict;
use warnings;
use LWP::Simple;
my $content = get('http://temptrax.itworks.com/temp');
my %probes = $content =~ /Probes*(d)|s*(-?[d.]+)/gx;
for ($ARGV[0]) {
when(1) {print "$probes{1}n"; }
when(2) {print "$probes{2}n"; }
when(3) {print "$probes{3}n"; }
when(4) {print "$probes{4}n"; }
default {print "error"; }
}
Update2:找出了一种更简单的方法
#!/usr/bin/env perl
use v5.10.1;
use warnings;
use LWP::Simple;
my $content = get('http://temptrax.itworks.com/temp');
my %probes = $content =~ /Probes*(d)|s*(-?[d.]+)/gx;
$MyVar = $ARGV[0];
print $probes{$MyVar};
print $probes{1};
也许?相当简单。或:
print "$_ => ", $probes{$_} for 1,2,4; # selected numbers