【发布时间】:2011-02-09 14:35:50
【问题描述】:
我有 index.pl 和 subs.pl。当我运行程序时,用户插入出生日期,然后将其传递给 subs.pl 中的getage() 子程序,该子程序有很多子程序。
getage() 比隐式调用另一个名为 validate() 的子程序来验证用户输入的日期。
当我运行 index.pl 并且用户输入日期为03-04-2005 时,会出现以下错误:
不能在 subs.pl 第 85 行修改非左值子例程调用, 第 1 行
在 subs.pl 的第 85 行我有:
list(my $val,my @value) = validate($dob);
validate() 返回一条消息和从getage() 发送的date($dob)。
来自 validate() 的一些代码:
sub validate {
my $dob = shift;
my $error;
my @test;
@test = split("-",$dob);
if (!@test) {
$error = "date separator should be - ";
return ($error,@test);
}
...
【问题讨论】:
-
你将不得不给我们更多的代码来帮助我们能够回答你。一方面,Validate 返回什么。另外什么是“列表”。
-
@Karya 得到了解决方案列表是我认为列表会“列出”返回值的问题。删除单词“列表”起到了作用..无论如何问题已修改,谢谢
标签: perl