Author Topic: Perl freeBSD  (Read 7315 times)

0 Members and 1 Guest are viewing this topic.

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Perl freeBSD
« on: June 27, 2006, 17:34:04 »
Система FreeBSD 6 Установлен perl 5.8.8, p5-MIME-Base64-3.07, из портов.

Code: [Select]
#!/usr/local/bin/perl
...
require '/usr/local/lib/perl5/5.8.8/mach/MIME/Base64.pm';
...
print encode_base64(test);
в результате получается ошибка:
>Undefined subroutine &main::encode_base64 called at ./migrate_passwd.pl line 81, <INFILE> line 1.

вот такая конструкция выдаёт чего-то похожее на base64:
perl -MMIME::Base64 -e 'print encode_base64("werawds");'
в какую сторону поглядеть?

Offline nuclight

  • Full Member
  • ***
  • Posts: 207
  • Karma: +1/-2
    • http://antigreen.org
Perl freeBSD
« Reply #1 on: June 27, 2006, 19:07:17 »
Quote from: Krueger
Система FreeBSD 6 Установлен perl 5.8.8, p5-MIME-Base64-3.07, из портов.

Code: [Select]
#!/usr/local/bin/perl
...
require '/usr/local/lib/perl5/5.8.8/mach/MIME/Base64.pm';
...
print encode_base64(test);
в результате получается ошибка:
>Undefined subroutine &main::encode_base64 called at ./migrate_passwd.pl line 81, <INFILE> line 1.

вот такая конструкция выдаёт чего-то похожее на base64:
perl -MMIME::Base64 -e 'print encode_base64("werawds");'
в какую сторону поглядеть?

А нельзя было написать положенное use MIME::Base64; вместо какого-то черезжопного непортабельного require с путем куда-то в дебри?
WBR, Nuclear Lightning
[FreeBSD][Давить зелёных]

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Perl freeBSD
« Reply #2 on: June 27, 2006, 19:38:51 »
Quote from: nuclight
А нельзя было написать положенное use MIME::Base64; вместо какого-то черезжопного непортабельного require с путем куда-то в дебри?
Если бы я знал перл достаточно хорошо, то возможно, так и написал бы. чуть выше была строчка, где было написано require, вот по аналогии и дописал ещё одну.
Сенкс, заработало.

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Perl freeBSD
« Reply #3 on: June 28, 2006, 18:12:03 »
Ещё один вопрос.
Установил ещё один подключаемый модуль p5-Unicode-Map8-0.12
команда
perl -MUnicode::MapUTF8 -e 'print to_utf8("werawds");'
выдаёт ошибку:
Undefined subroutine &main::to_utf8 called at -e line 1.

что теперь не так сделал? или точнее, как узнать какие функции содержит этот модуль? в MapUTF8.pm нашёл функцию to_utf8, но почему оно не работает?

Offline demiurg

  • Hero Member
  • *****
  • Posts: 1014
  • Karma: +0/-0
    • http://larin.tomsk.ru
Perl freeBSD
« Reply #4 on: June 28, 2006, 20:34:00 »
Quote from: Krueger
Ещё один вопрос.
Установил ещё один подключаемый модуль p5-Unicode-Map8-0.12
команда
perl -MUnicode::MapUTF8 -e 'print to_utf8("werawds");'
выдаёт ошибку:
Undefined subroutine &main::to_utf8 called at -e line 1.

что теперь не так сделал? или точнее, как узнать какие функции содержит этот модуль? в MapUTF8.pm нашёл функцию to_utf8, но почему оно не работает?
Вот ссылка на этот модуль в CPAN http://search.cpan.org/~snowhare/Unicode-M.../MapUTF8.en.pod. Там кстати и пример есть
Code: [Select]
use Unicode::MapUTF8 qw(to_utf8 from_utf8 utf8_supported_charset);

 # Convert a string in 'ISO-8859-1' to 'UTF8'
 my $output = to_utf8({ -string => 'An example', -charset => 'ISO-8859-1' });

 # Convert a string in 'UTF8' encoding to encoding 'ISO-8859-1'
 my $other  = from_utf8({ -string => 'Other text', -charset => 'ISO-8859-1' });

 # List available character set encodings
 my @character_sets = utf8_supported_charset;

 # Add a character set alias
 utf8_charset_alias({ 'ms-japanese' => 'sjis' });

 # Convert between two arbitrary (but largely compatible) charset encodings
 # (SJIS to EUC-JP)
 my $utf8_string   = to_utf8({ -string =>$sjis_string, -charset => 'sjis'});
 my $euc_jp_string = from_utf8({ -string => $utf8_string, -charset => 'euc-jp' })

 # Verify that a specific character set is supported
 if (utf8_supported_charset('ISO-8859-1') {
     # Yes
 }
Кстати Unicode-Map8 (http://search.cpan.org/~gaas/Unicode-Map8-0.12/Map8.pm) и Unicode-MapUTF8 это разные модули.
« Last Edit: June 28, 2006, 21:04:21 by demiurg »

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Perl freeBSD
« Reply #5 on: June 28, 2006, 23:11:59 »
Quote from: demiurg
Code: [Select]
use Unicode::MapUTF8 qw(to_utf8 from_utf8 utf8_supported_charset);
Кстати Unicode-Map8 (http://search.cpan.org/~gaas/Unicode-Map8-0.12/Map8.pm) и Unicode-MapUTF8 это разные модули.
Вот оно в чём дело было.. не догадался, что подключать надо таким образом :-(
Да, заметил уже. просто Map8 оказалось зависимостью.
Спасибо.

Offline demiurg

  • Hero Member
  • *****
  • Posts: 1014
  • Karma: +0/-0
    • http://larin.tomsk.ru
Perl freeBSD
« Reply #6 on: June 29, 2006, 00:34:03 »
Quote from: Krueger
Вот оно в чём дело было.. не догадался, что подключать надо таким образом :-(
Да, заметил уже. просто Map8 оказалось зависимостью.
Спасибо.
http://www.books.ru/shop/books/11085 и
http://www.books.ru/shop/books/183384
должны быть настольными книгами perl-программиста

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Perl freeBSD
« Reply #7 on: June 29, 2006, 00:44:30 »
Quote from: demiurg
http://www.books.ru/shop/books/11085 и
http://www.books.ru/shop/books/183384
должны быть настольными книгами perl-программиста
Если бы я был перл программистом ещё.. :-\
жизнь заставила переписывать чужие скрипты, вот и пришлось срочно обучаться:-)

Offline nuclight

  • Full Member
  • ***
  • Posts: 207
  • Karma: +1/-2
    • http://antigreen.org
Perl freeBSD
« Reply #8 on: June 29, 2006, 02:18:23 »
Hint: фревые перловые порты устанавливают man-страницы (обычно генерируются из pod). Вот их читай, там описано, как модулем пользоваться.
WBR, Nuclear Lightning
[FreeBSD][Давить зелёных]

Offline Krueger

  • Full Member
  • ***
  • Posts: 195
  • Karma: +0/-0
    • http://www.zaonsv.ru
Perl freeBSD
« Reply #9 on: June 29, 2006, 09:11:39 »
Quote from: nuclight
Hint: фревые перловые порты устанавливают man-страницы (обычно генерируются из pod). Вот их читай, там описано, как модулем пользоваться.
Всё замечательно, но я так и не понял, как работать с этими перловыми ман страницами:-(
всё, что написал демиург, видел и в этих манах вперемешку с разными служебными символами, но т.к. man.. хотел написать что эти мануалы совершенно нечитаемы.
бр, ничего не понимаю, или вчера к вечеру все мозги совсем выкипели или ещё что, но не мог прочитать эти мануалы:-( а сегодня читаю нормально  
ладно проехали... пока прохладно буду работать:-)

Offline mars

  • Sr. Member
  • ****
  • Posts: 302
  • Karma: +0/-0
Perl freeBSD
« Reply #10 on: July 01, 2006, 09:38:55 »
выполни вот такую команду
$ perldoc perldoc
« Last Edit: July 01, 2006, 09:39:33 by mars »