从perl中的哈希打印特定的线

  • 本文关键字:打印 哈希 perl perl
  • 更新时间 :
  • 英文 :


我的问题是如何从哈希(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

最新更新