2010-08-16 3 views
1

Я не мог понять, что именно делает «W».Что именно «W» делает в функции распаковки в Perl?

my $x = "this is my string"; 

print unpack("W",substr($x,0,1)); 

Печать: 116

my $x = "this is my string"; 

print unpack("W",$x); 

Еще Печатает: 116

+0

Subham, все ваши ответы re: функции perl лежат за одной командой: «perldoc perlfunc» - чтение всего perldoc настоятельно рекомендуется; меня многому научили. – zen

ответ

6

От perldoc: W An unsigned char value (can be greater than 255).

Обе ваши примеры возвращают то же самое, потому что ваш распаковывать аргумент "W" потребляет только один символ , Вместо этого попробуйте "W*".

+0

Да. Вы правы, но почему 116? Значение ASCII «t» не относится. – Shubham

+1

'ord 't' == 116' и' Код ASCII для капитала T равен 84, а для нижнего регистра - 116' - http://en.wikipedia.org/wiki/T –

+1

Shubham: 'man ascii' работает над любая система unix. Это самый быстрый способ проверки шестнадцатеричных/восьмеричных/десятичных значений символов ascii. – Ether

 Смежные вопросы

  • Нет связанных вопросов^_^