私の質問は、ハッシュから特定の行を出力する方法です。これまでのコード(Joel Bergerに感謝します)は次のとおりです。
#!/usr/bin/env perl
use strict;
use warnings;
use LWP::Simple;
my $content = get('http://temptrax.itworks.com/temp');
my %probes = $content =~ /Probe\s*(\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 =~ /Probe\s*(\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 =~ /Probe\s*(\d)\|\s*(\-?[\d\.]+)/gx;
$MyVar = $ARGV[0];
print $probes{$MyVar};