次のコードがあります。大きな値を切り捨てるために書きました。
sub truncate_large_email_tag
{
my($email_tag) = @_;
my $size = length($email_tag);
if ($size>5000) {
my $fragment = substr($email_tag,0,5000);
$email_tag = $fragment;
#log_it( "\n\Truncated Large Email tags\n\n") if $TRACE;
}
そして、別のサブルーチンの呼び出しを使用してこのサブルーチンを呼び出しています
sub do_something
{
#some code here # CFG_PASS is a hash
$EMAIL{$tag}=$CFG_PASS{$typ}{$tag}{$where . '_DEFAULTS'}; #Email
#tag initialized here
truncate_large_email_tag($EMAIL{$tag});
}
しかし、チェックすると、 $EMAIL{$tag} はまだ切り捨てられていない値を指しています。私は何か間違ったことをしていますか?