ずに祝福されたハッシュメンバーを汚染を取り除く私はいくつかのソース または削除
($self->{arg}) = ((delete $self->{arg}) =~ /(.*)/s) if ${^TAINT};
私は汚染を取り除くを理解するには、このコード行を見ました。私も知ら
delete
私の質問はどのような状況では、それが必要かdelete
を使用するのが好ましい、であり、それは例えば
($self->{arg}) = (($self->{arg}) =~ /(.*)/s) if ${^TAINT};
単純
#!/usr/bin/env perl -T
use 5.014;
use warnings;
package Some {
use Moose;
has 'arg' => (is => 'rw', isa => 'Str');
sub doit {
my $self = shift;
#($self->{arg}) = ((delete $self->{arg}) =~ /(.*)/s) if ${^TAINT};
($self->{arg}) = (($self->{arg}) =~ /(.*)/s) if ${^TAINT};
}
};
my $some = Some->new(arg => 'some text');
$some->doit();
say $some->arg;
できます。その場でハッシュ値を変更する(または、この場合は変更しない)ことは、ハッシュ値を削除して再挿入するのと同じように見えます。この練習をどこで見たことがありますか? – Borodin
@Borodin私はそれを見たhttps://metacpan.org/source/JSWARTZ/Mason-2.24/lib/Mason/Compilation.pm#L105 – Nemo
それはtie()の場合に違いを生むことができますが、私はここには何も見ません。ダニー。私はこれをすることを決して考えていないだろう。 –