Моя змінна $var
має форму "abc.de". Що саме робить цей субстрат у цій заяві:
$convar = substr($var,0,index(".",$var));
Відповіді:
5 за відповідь № 1index()
знаходить один рядок в іншому і повертає індекс або позицію цього рядка.
substr()
поверне підрядок рядка між 2 позиціями (починаючи з 0).
Дивлячись на вищесказане, я підозрюю, що індексний метод використовується неправильно (оскільки його визначення є індекс STR, SUBSTR), і це має бути
index($var, ".")
знайти "." в межах "abc.de" і визначити підрядок "abc.de"
2 для відповіді № 2
Використання substr передбачено тут -
substr EXPR,OFFSET,LENGTH
Оскільки зміщення дорівнює 0, операція повертає рядок up, але не включає першу "." position (повертається індексом (".", $ var)) у $ convar.
Подивіться на підлозі і індекс функції в perldoc для уточнення питань далі.
0 для відповіді № 3
Perl підлозі функція має формат:
substr [string], [offset], [length]
який повертає рядок із зміщення індексу до зміщення індексу + довжина
індекс має формат:
index [str], [substr]
який повертає індекс першого входження substr в str.
тому substr ("abc.de", 0, індекс (".", $ var)); повертає підрядок, що починається з індексу 0 (тобто "a"), до числа символів першого входження рядка.
Таким чином, $ convar буде мати "abc" у вашому прикладі
edit: чорт, люди занадто швидкі: P edit2: і Брайан має рацію, що індекс використовується неправильно
0 для відповіді № 4
Чому б не запустити його і дізнатися?
#! / usr / bin / perl my $ var = $ ARGV [0]; мій $ index = index (".", $ var); print "index - це $ index.n"; my $ convar = substr ($ var, 0, $ index); print "convar is $ convar.n";
Запустіть це на купу слів і подивіться, що відбувається.
Також, ви можете ввести:
індекс perldoc -f perldoc -f substr
0 для відповіді № 5
Казково, ви можете записати дані в підрядок, використовуючи substr як ліву частину призначення:
$ perl -e "$a="perl sucks!", substr($a,5,5)="kicks ass"; print $a"
perl kicks ass!
Вам навіть не потрібно дотримуватися тієї самої довжини - рядок буде розширено, щоб відповідати.
Технічно це відомо як використання субстрана як lvalue.