我不明白Lvalue子例程的用途是什么?我用普通子程序不能完成什么?你能举几个例子吗?
谢谢
解决方法
建议避免使用.他们很有趣,但他们混淆了新用户,他们假设所有的内容都是有效的,因此,当有更好的方法可以避免代码.
有时使用LValue结果做脏事可能非常实用.
substr( $string,$start,$stop ) = 'somevalue' # replaces the specified part of the substring.
但是,这也同样如此:
substr( $string,$stop,'somevalue' );
这里的差异大多是前者具有显着的更强大的力量,因为它将行为委托给使用它的代码而不是函数本身.
例如:
substr( $string,$stop ) =~ s/a/b/g
需要你做
my $x = substr( $string,$stop ); $x =~ s/a/b/g/; substr( $string,$x );
这有点讨厌
虽然这里还有一个令人讨厌的问题,因为您必须考虑是否以$x作品替代,以追溯方式修改字符串(由于substr是一个LValue子).我不认为它是,但它的含糊不清,我必须检查手册,以记住是否与否,这是坏的.