- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我现在正在课间休息,决定花时间学习 Perl。我正在使用 Beginning Perl ( http://www.perl.org/books/beginning-perl/ ),我正在完成第三章末尾的练习。
其中一个练习要求我“将您的重要电话号码存储在一个散列中。编写一个程序来按人名查找号码。”
无论如何,我想出了这个:
#!/usr/bin/perl
use warnings;
use strict;
my %name_number=
(
Me => "XXX XXX XXXX",
Home => "YYY YYY YYYY",
Emergency => "ZZZ ZZZ ZZZZ",
Lookup => "411"
);
print "Enter the name of who you want to call (Me, Home, Emergency, Lookup)", "\n";
my $input = <STDIN>;
print "$input can be reached at $name_number{$input}\n";
Use of uninitialized value in concatenation (.) or string at hello.plx line 17, line 1
chomp ($input);
的存在之后
<STDIN>;
.
chomp
在前面的例子中,但他并没有真正涵盖
chomp
正在做。所以,我在 www.perlmeme.org 上找到了这个答案:
The
chomp()
function will remove (usually) any newline character from the end of a string. The reason we say usually is that it actually removes any character that matches the current value of$/
(the input record separator), and$/
defaults to a newline..
"\n"
到来自 <STDIN>
的输入?我只是有点不清楚,因为当我读到“它实际上删除了与 $/
的当前值匹配的任何字符”时,我不禁想到“我不记得在我的代码中的任何位置放置了 $/
.” chomp
之后 <STDIN>
或者有没有不必要的场景? 最佳答案
<STDIN>
读取到输入字符串的末尾,如果您按回车键输入它,则其中包含一个换行符,您可能会这样做。chomp
删除字符串末尾的换行符。 $/
是一个变量(如您所见,默认为换行符),您可能不必担心;它只是告诉 perl 什么是“输入记录分隔符”,我假设这意味着它定义了多远 <FILEHANDLE>
读。您现在几乎可以忘记它,这似乎是一个高级主题。就假装chomp
砍掉一个尾随的换行符。老实说,我什至从未听说过 $/
前。
至于您的另一个问题,通常更清晰地处理变量并稍后根据需要添加换行符,因为您并不总是知道变量是否有换行符;通过总是 chomping 变量,你总是会得到相同的行为。有些情况下它是不必要的,但如果你不确定它不会伤害 chomp
它。
希望这可以帮助!
关于perl - 关于 chomp 的澄清,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290445/
这三者有什么区别:gets - 它获取带有 '\n' 的行gets.chomp - 它得到一行,但删除 '\n' 这样对吗? gets.chomp! 怎么样? 最佳答案 gets - 它得到一个末尾带
这个问题在这里已经有了答案: What's the difference between gets.chomp() vs. STDIN.gets.chomp()? (4 个答案) 关闭 8 年前。
它们是相同的,还是这两个命令之间存在细微差别? 最佳答案 gets 将使用 Kernel#gets,它首先尝试读取通过 ARGV 传入的文件的内容。如果 ARGV 中没有文件,它将使用标准输入代替(此
我正面临着 perl chomp 功能的问题。 我有一个 测试.csv 如下: col1,col2 vm1,fd1 vm2,fd2 vm3,fd3 vm4,fd4 我想打印这个 csv 的第二个字段。
chomp似乎能够更改未通过引用传递的变量的值;也就是说,语法是 chomp $var而不是 chomp \$var . 这怎么可能?如何在函数中模仿这种行为? chomp : my $var="fo
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我有这样的代码: #!/usr/bin/perl use strict; use warnings; open(IO,"}; chomp($variable); print $variable; 但是
我正在尝试解析 JSON 的一个子集,该子集仅包含一个非嵌套对象,该对象仅包含可能包含转义序列的字符串值。例如 { "A KEY": "SOME VALUE", "Another key":
我正在尝试创建游戏 Chomp。我已经完成一半了,但还是卡住了。 游戏将有 5 种不同的功能。不允许使用指针和结构。 这就是我已经走了多远,一段时间以来我一直在为一些问题而苦苦挣扎,但我不知道如何自己
我正在尝试编写一个程序,要求用户在三秒内使用 gets.chomp 回答问题,否则答案将自动返回 false。 我想出了除了超时部分之外的所有内容,我想知道是否有人可以提供帮助。 最佳答案 你可以使用
我现在正在课间休息,决定花时间学习 Perl。我正在使用 Beginning Perl ( http://www.perl.org/books/beginning-perl/ ),我正在完成第三章末尾
所以我在使用 while 循环遍历套接字时遇到了这个问题。 当我使用它时,它完全可以正常工作,但我在每个 $message 上都有换行符,这是我不想要的。 my $socket = new IO::S
我经常要做: #similarly in while (my $val = ){...} my $val = ; chomp $val; my $res = `command`; chomp $res
我试图理解以下代码的作用 void chomp (char* string, char delim) { size_t len = strlen (string); if (len =
这个问题在这里已经有了答案: 关闭10 年前。 Possible Duplicate: What do you call the &: operator in Ruby? 我一直看到“.map(&:
我写了一个小程序如下 print "Your string = " input = gets.chomp.downcase! if input.include? "s" puts "Go you
我正在使用 ruby 错误:整数与字符串的比较失败(ArgumentError) puts "Age: " age = gets.chomp if 0 < age < 130 我希望程
我了解 puts 和 gets 末尾自动出现的\n,以及如何处理它们,但有没有办法保持显示点('光标位置',如果你愿意的话)在使用 gets 输入输入后移动到新行? 例如 print 'Hello,
有没有一些简单的方法可以在提供默认值的同时要求 Ruby 中的用户输入? 在 bash 中考虑这段代码: function ask_q { local PROMPT="$1" loca
我没有找到关于如何在 Haskell 中删除字符串(删除前导/尾随字符)的信息,并且没有地方可以找到这样的 strip或 chomp功能(如果我错了,请纠正我)。 我要做什么? 最佳答案 看看 Dat
我是一名优秀的程序员,十分优秀!