Perl 建议 - 接收文件并更改内容

标签 perl

我需要一些关于如何处理我想用 Perl 编写的脚本的建议。基本上我有一个看起来像这样的文件:

  id: 1
  Relationship: ""
  name: shelby
  pet: 1
  color:4

有一些关键字,例如 pet 和 color 后面有数字。我希望能够获取一个文件并查找这些关键字(其中有 5 或 6 个),然后将数字更改为该数字对应的单词。也就是说对于关键字“Pet”---> 0 =dog,1 = cat,2 = fish。对于关键字“color”,0 = red, 1=blue,2=purple,3=brown,4=white。该脚本应该找到并更改这些数字。目标应该是一个如下所示的输出文件:

      id: 1
      Relationship: ""
      name: shelby
      pet: cat
      color:white

一段时间以来,我一直在为如何做到这一点而苦苦挣扎。我在网上查了一下,也许我可以做一些散列数组之类的事情,但我对 Perl 比较陌生,甚至不知道如何解决这个问题……任何建议都将不胜感激!

谢谢

最佳答案

如果我们讨论的是一小组值,您可以使用数组散列:

%lookups = ( pet => [ "dog", "cat", "fish" ],
             color => [ "red", "blue", "purple", "brown", "white" ] );

然后,当您阅读文件时,根据散列检查每个关键字。如果它有一个包含该关键字的键,请将您读取的行中的值替换为哈希中的值。

关于Perl 建议 - 接收文件并更改内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7100632/

相关文章:

linux - perl 中的 "Copy failed: File too large"错误

perl - 如何在 Perl 中构建和解析 HTTP URL/URI/路径?

Perl LibXML 编码实体

python - 按包含数字的行排序,忽略附加在字母上的数字

shell - Perl 捕获子进程的 STDERR 和 STDOUT

perl - 使用perl构建关键字树

xml - 如何在 Perl 中使用 XML::LibXML 访问节点

linux - 在 Linux 中,如何让我的 Perl 脚本像二进制文件一样运行?

perl - 每个优秀的 Perl 开发人员都应该能够回答的问题

perl - 如何使用 Perl 增量打印字符串?