LINUX.ORG.RU

Называть переменные a/b в Perl - плохая практика. Эти переменные зарезервированы для иных целей.

«Как сравнить эти две переменные» - что подразумевается под сравнением? Так сойдет?

my $a_var = '5291-373'; 
my $b_var = '5291';

print qq{a eq b\n} if $a_var eq $b_var;
print qq{a ne b\n} if $a_var ne $b_var;

outtaspace ★★★
()
Ответ на: комментарий от port

сравнивает(==), только если use warnings убрать.

Операторы == и != годятся только для сравнения чисел. В переменной $a не число, поэтому надо использовать eq и ne.

outtaspace ★★★
()
Ответ на: комментарий от ananas

use common::sense;
use spell::check;

И поди разберись, какая из прагм реально существует, а какая — просто шутка.

anonymous
()
Ответ на: комментарий от outtaspace

Называть переменные a/b в Perl - плохая практика

Если использовать use strict и все локальные переменные объявлять с my, то ничего плохого не случится. Хотя однобнквенные переменные это в принципе плохая практика.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Хотя однобнквенные переменные это в принципе плохая практика.

В принципе, нет. Одна или две однобуквенных переменных в коротенькой функции на несколько строк — прекрасная практика.

anonymous
()
Ответ на: комментарий от anonymous

Без разницы короткая функция или длинная. Однобуквенное имя уместно только если это счетчик в цикле или что-то вроде того, либо функция реализует абстрактный алгоритм (НОД считает, например)

annulen ★★★★★
()
Ответ на: комментарий от annulen

Однобуквенное имя уместно только если это счетчик в цикле или что-то вроде того, либо функция реализует абстрактный алгоритм (НОД считает, например)

Выделение абстракции — это больше половины случаев использования коротких функций. (Хотя, как там принято именно в перле, я не знаю. Может, перловики вообще функции меньше сотни строк не пишут.)

И в любом случае, никаких проблем уследить за одной-двумя переменными в функции на несколько строк нет. Поэтому никакого удобства длинное имя не добавляет.

С другой стороны, если вы просто бездумно приняли правило «однобуквенные переменные — плохая практика» от какого-то авторитета, то вопросов больше не имею.

anonymous
()
Ответ на: комментарий от ananas

Да, спасибо, я уже сам поискал. К тому же Кенни тебя опередил.

А вот БезымянныйОдин, вполне возможно, принял use common::sense; за такую шутку.

За что мне перл нравится, так это за специфическое чувство юмора у сообщества. Постмодернистское, что ли. У Ларри даже где-то статья была о том, что перл — язык постмодерна.

anonymous
()
Ответ на: комментарий от outtaspace

что подразумевается под сравнением?

Я попытался упростить. Надо найти одинаковые элементы массивов. В одном массиве содержатся строки, в другом числа. Т.е. 5291 = 5291-373, как то так.

my $item;
while($item = shift (@new_lst), my $f2_line = <$fn>)
{
    $item =~ tr/\r\n//d;
    #$item =~ s/-\d+//d;
    if ($item == $f2_line) 
    { 
     	#print $item,' ', $f2_line; 
     	print $f2_line;
    	#print $item;
    }
}

И вот тут я не знаю как сделать без use warnings. Если $item eq $f2_line . То он вообще ничего не находит.

port
() автор топика

Когда на ЛОРе научаться игнорировать откровенно мудацкие вопросы?

perl5_guy ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.