受到original thread以及即将到来的克隆的启发,这是Perl社区的一个。
优秀的Perl程序员应该能够回答什么问题?
答案 0 :(得分:15)
为什么use strict
有帮助?
答案 1 :(得分:12)
我的bellweather问题是What's the difference between a list and an array?。
我也倾向于要求人们向我展示尽可能多的方式来定义范围。人们几乎总是忘记了一个人,而大多数人认为的另一个人提供范围但却没有。
答案 2 :(得分:11)
之间有什么区别
if ($foo) { ... }
和
if (defined $foo) { ... }
什么时候应该使用另一个?
答案 3 :(得分:5)
<强>问题强>
解释这些代码行与变量值之间的区别。
my $a = (4, 5, 6);
my @a = (4, 5, 6);
my $b = 4, 5, 6;
my $c = @a;
Perl最大的优势是什么?
use strict;
做什么?为什么有用?以下代码块有什么作用?
print (3 + 4) * 2;
<强>测试强>
grep
实施map
。perldoc
兼容的文档。答案 4 :(得分:4)
my $x = ...
和my($x) = ...
之间的区别是什么?my($x,undef,$z) = ...
做什么?my(@a,@b) = (@list1, @list2)
可能是个错误?答案 5 :(得分:4)
/a(.*)b/
和/a(.*?)b/
之间的区别是什么?
答案 6 :(得分:4)
这段代码出了什么问题?
my @array = qw/a b c d e f g h/;
for ( @array ) {
my $val = shift @array;
print $val, "\n";
}
答案 7 :(得分:4)
my
和our
之间的区别是什么?my
和local
之间的区别是什么?答案 8 :(得分:3)
my $a = 1;
if($a) {
my $a = 2;
}
print $a;
最后$ a的价值是多少?
答案 9 :(得分:3)
答案 10 :(得分:3)
我认为brian d foy的方法是一种巧妙的策略来测试语言和编程工艺的知识,理解和偏袒:What are five things you hate about your favorite language?。如果他们不能说出5,他们可能对语言不太满意,或者对其他方法完全无能为力。
他将此应用于试图推动语言的人:我会扩展它并说它在这里适用。我希望每个优秀的Perl程序员能够为他们不喜欢的五件事命名。并且,我希望这五件事具有一定程度的优点。
答案 11 :(得分:2)
编写构建中等复杂数据结构的代码,比如数组哈希数组。你会如何访问特定的叶子?你将如何遍历整个结构?
答案 12 :(得分:2)
几个月前, Modern Perl 的色彩作者 - 写了一篇类似的好文章“如何识别一个好的Perl程序员”,其中包含了每个优秀Perl程序员的问题列表应该能够有效地回答。
下面给出了一些好问题:
使用
$items[$index]
和@items[$index]
访问数组元素有什么区别?
==
和eq
之间有什么区别?如何从Perl 5模块加载和导入符号?
在来电方面,
return;
和return undef;
之间有什么区别?- 醇>
使用
for
和while
阅读文件有什么区别?
有关完整的详细信息,请阅读How to Identify a Good Perl Programmer。
答案 13 :(得分:2)
我最喜欢的问题。缺少以下代码:
open(my $fh, "<", "file.txt");
while (<$fh>) {
print $_;
}
close($fh);
这个问题应该在perl中讨论关于错误处理的讨论。它也可以被其他语言采用。
答案 14 :(得分:2)
对于以下每个问题,如何使用哈希解决它?
答案 15 :(得分:1)
什么是词汇封闭?闭包什么时候有用? (请,没有反创造者!)
答案 16 :(得分:1)
$foo->{bar}[$baz]($quux)
如何评估?
答案 17 :(得分:1)
列表上下文和标量上下文之间有什么区别。你如何访问每个?哈希上下文有这样的东西吗?也许一点点?
答案 18 :(得分:1)
如何在不使用临时变量的情况下交换两个变量的值?
答案 19 :(得分:0)
这种单线印刷的原因是什么:
perl -pe '}{$_ = $.' file
answer:文件中的行数,类似于wc -l
。
此代码有什么问题:
my $i;
print ++$i + ++$i;
回答:在同一个语句中修改变量两次会导致未定义的行为。
简单的一个:if块运行:
my @arr = undef;
if (@arr) { ... }
回答:是
您如何自己编写reverse()
perl内置代码?您可以使用其他perl函数。
回答:很多方法。简短的一个:sub my_reverse {sort {1} @_})
答案 20 :(得分:0)
我也可能正在挖掘正则表达式,因为我希望每个优秀的Perl程序员都能掌握正则表达式(但不仅如此)。一些可能的问题:
答案 21 :(得分:-1)
初始化空字符串的正确方法是什么?
my $str = q{};
或
my $str = "";
或
my $str = '';