KHyT
Знаток
- Регистрация
- 26 Апр 2008
- Сообщения
- 328
- Реакции
- 25
- Автор темы
- #1
Код:
#!/usr/bin/perl -w
use strict;
my $foo = join('',@ARGV);
if (is_tainted($foo)) {
print "\$foo is tainted. Attempting to launder\n";
my $pattern = qr(^\d{3}(-|\s+)?\d{3}(-|\s+)?\d{4}$);
$foo = untaint($foo, $pattern);
}else{
print "\$foo is not tainted!!\n";
}
sub is_tainted {
my $check = shift;
return !eval { $check++, kill 0;1;};
}
sub untaint {
my ($foo, $pattern) = @_;
if ($foo =~ /($pattern)/) {
$foo = $1;
print "\$foo has been laundered!!\n";
return $foo;
}else{
print "Unable to launder \$foo\n";
return $foo;
}
}
Объясните Новичку код а именно действия @ARGV это что то типа массива который принемает параметры командной строки, но где и куда вводятся эти параметры и каким образом??