Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > ActiveTcl+ActivePerl не работает Tk


Автор: DissDoc 1.1.2009, 21:09
Что я делаю не так?
Установил в директорию C:\WEB\perl и C:\WEB\Tcl соответственно.
Написал простенький скрипт для проверки
Код

#!C:\WEB\perl\bin\perl -w

use strict;
use Tk;

my $main = MainWindow->new;
$main->Label(-text => 'Hello, world!')->pack;
$main->Button(-text => 'Quit',
              -command => [$main => 'destroy']
             )->pack;
MainLoop;

А он мне вместо окна выдает ошибку
Код

Can't locate Tk.pm in @INC (@INC contains: C:/WEB/perl/site/lib C:/WEB/p
.) at D:\__Projects\Draft\main.pl line 4.
BEGIN failed--compilation aborted at D:\__Projects\Draft\main.pl line 4.


Переменные среды вроде бы все прописаны...
Где я неправ?  smile 

Автор: tolkien 2.1.2009, 01:08
У вас не установлен Tk.
Небольшой тутуриал проверки если у вас Tk.


Возможно что Tk не входит в ваш стандартный дистрибутив PERL. Поэтому его нужно установить. 
Чтобы проверить установлен ли у вас Tk. В командной строке наберите следующую строчку 

 perl -e "use Tk"

Если в ответ получите след сообщение "Can't locate Tk.pm in @INC (@INC contains: ...)" значит Tk у вас не установлен. И придется его устанавливать. 
Если у вас Тk установлен то его версию можете узнать напечатав след команду

perl -MTk -e "print $Tk::VERSION"

Ответ будет примерно такой "804.027"
Лучшим способом проверить установлен ли Tk и работает ли он нормально набрать в командой строке 

widget

Если все работает нормально то на экране монитора вы должны увидеть большое окно с кучей кнопок. Эта программа сделана специально для демонстрации возможностей Tk.

Автор: DissDoc 2.1.2009, 12:00
Это все понятно. Проблема в том, как скачать Tk.pm!
Но я разобрался сам.
В пакет ActivePerl и ActiveTcl не входит Tk. Поэтому необходимо было докачать Tk.pm
Моя ОС WindowsXP SP3. В консоле ввел команду
Код

ppm install Tk

И все заработало.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)