tr/// v reverse()

2 отговора 77 прегледа
#1

tr/// v reverse()

Nqkoj mozhe li da mi objasni zashto se poluchava tova (udebelil sum go):

$ perl -d -e 0

Loading DB routines from perl5db.pl version 1.19
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(-e:1): 0
DB<1> $test_str1 = "adfsaishashkjahjjhkn"

DB<2> print $test_str1;

adfsaishashkjahjjhkn

DB<3> $test_str2=reverse($test_str1=~tr/a-z/A-Z/);

DB<4> print $test_str2;

02


DB<5> print $test_str1;

ADFSAISHASHKJAHJJHKN

DB<6> $test_str3=reverse($test_str1);

DB<7> print $test_str3

NKHJJHAJKHSAHSIASFDA

Отговор
в отговор на ddfd #2

Re: tr/// v reverse()

Защото израза $variable=~ tr/a-z/A-Z/ в контекста в който си го дал на reverse връща 20 (броя на преобразуваните символи), reverse го хваща (имам предвид стринга "20") и го обръща до 02... Що не ползваш uc за преобразуване в големи букви?

воля, воля... и пак воля...
Отговор
в отговор на stinger #3

Re: tr/// v reverse()

Благодаря:) Това го дадох просто за пример. Не е нещо сериозно. Тръгнал съм на един курс и там попаднах на тази изцепка и никой не можа да ми каже защо се получава.

Отговор