从 perl 文件中的文本中提取和存储键值对中的值

sam*_*sam 5 perl hash

我有一个文本文件,其中包含如下信息:

name=A
class=B
RollNo=C
Run Code Online (Sandbox Code Playgroud)

我想提取 perl 脚本中的值

key(name) = value(A)
key(class) = value(B)
key(RollNo) = value(C)
Run Code Online (Sandbox Code Playgroud)

键应该作为具有值的变量导出。每当我们打字

print $name
Run Code Online (Sandbox Code Playgroud)

输出应该是'A'

我试过了:

open my $fh, '<', $file_name
  or die "Could not open sample.txt: $!";
my @lines = <$fh>;

my %hash;
while (<@lines>) {
    chomp;
    my ($key, $value) = split /=/;
    next unless defined $value;
    $hash{$key} = $value;
}
print %hash;
Run Code Online (Sandbox Code Playgroud)

Dav*_*oss 6

您的代码看起来很不错,到目前为止您所做的大部分工作都有效。

最后,你跑了print %hash,这并没有给你你所期望的。这会将散列中的键和值“展开”到一个列表中并打印该列表。所以你可以打印出所有的键和值。

如果您只需要一个值(例如,与“name”键关联的值),则只需打印该值。

print $hash{name};
Run Code Online (Sandbox Code Playgroud)

这就是你要找的吗?


vin*_*k89 3

您可以将数据存储在哈希中并可以从中检索。

use strict;
use warnings;

use Data::Dumper;

my %hash = (
    name    => 'A',
    class   => 'B',
    RollNo  => 'C'
);

print Dumper(\%hash);

print $hash{'name'};
Run Code Online (Sandbox Code Playgroud)