Forum Webscript.Ru
Программирование => Perl => Тема начата: C++ от 15 Апреля 2003, 22:24:26
-
Есть функция:
sub in()
{
my($digit,$array)=@_;
my $res=0;
for(my $i=0;$i<@$array;$i++)
{
if($digit==$$array[$i])
{
$res=1;
last;
}
}
return($res);
}
Она проверяет входит ли элемент в список.
Но, вот не задача, передаю массив из n элементов, работает правильно она, только до 25 элемента, а дальше не находит:(
передаваемые данные 100% верны, проверял....
Заранее спасибо!
-
#!/usr/bin/perl
foreach (1..100)
{
push @a,$_;
}
foreach (1..100)
{
print $_.\'-\'.&in($_,\\@a)."\\n";
}
sub in()
{
my($digit,$array)=@_;
my $res=0;
for(my $i=0;$i<@$array;$i++)
{
if($digit==$$array[$i])
{
$res=1;
last;
}
}
return($res);
}
---------- Perl run ----------
1-1
2-1
...
100-1
Output completed (0 sec consumed) - Normal Termination
Но я бы вообще написал $#$array или $#{$array} вместо @$array
perldoc Data::Dumper
-
у меня тоже все работает... я бы написал...
sub in {
my ($digit, $array) = @_;
for (@{$array}) {
return 1 if $_ == $digit;
}
return 0; #можно опустить
}
-
А не лучше ли это
foreach (1..100)
{
push @a,$_;
}
заменить на это
@a = (1..100);
-
А не лучше...
Не принципиально, человек не спрашивал как ему лучше заполнить массив.
С дискуссиями от том как лучше это сделать - во флейм.
-
Всем огромное спасибо!!!