Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перл, первый скрипт 
:(
    Опции темы
hotdap
Дата 6.5.2006, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.4.2006

Репутация: нет
Всего: нет



Уважаемые ассы интренет программирования! Не сочтите мой вопрос банальным. Я только начал изучение Perl, до этого программированием не занимался вообще. И сразу первый вопрос:
Набираю код:

#!\local\perl\bin\
print "Введите имя:\n";
$a = <STDIN>;
print "$a";


Я так думаю, когда я запускаю этот скрипт прграмма просит ввести имя, после моего ввода с клавиатуры, она его повторит. 
Но у меня ничего не получилось: Запускаю скрипт, выводится предложение ввести имя, я ввожу имя, нажимаю enter и все, повторение имени скрипт не выводит.
Подскажите, пожалуйста в чем причина?  

Это сообщение отредактировал(а) hotdap - 6.5.2006, 17:22
PM MAIL   Вверх
Wowa
Дата 6.5.2006, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Я попробуй написать: print "test";
Отобразит? 
PM WWW   Вверх
shootnix
Дата 6.5.2006, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 3.9.2005
Где: Казахстан

Репутация: 2
Всего: 2



гы, она просто выводит и завершает работу. всё происходит довольно быстро, мало кто успевает разобрать smile)) нужно программу задержать smile попробуй так:

Код

#!\local\perl\bin\
print "Введите имя:\n";
$a = <STDIN>;
print "$a";
$a = <STDIN>;


Программа будет ждать теперь очередного ввода и не закроется, пока не нажмёшь enter 
PM WWW ICQ   Вверх
Wowa
Дата 6.5.2006, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



ну, в консоли ведь все равно должно быть видно. 
У меня есть подозрение, что программа умирает из-за отсутствия выдачи "Content-type". 
PM WWW   Вверх
hotdap
Дата 6.5.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.4.2006

Репутация: нет
Всего: нет



Wowa, print "test", попробовал. Все нормально. Выпечатывает test
shootnix, попробовал задержать, тоже  не помогает 
Вот что у меня получилось. учитывая ваши советы:
Код

#!\local\perl\bin\
print "Content-type: text/html\n\n";
print "Введите имя?\n";
$a=<STDIN>;
print "<html><h1>$a</h1></html>\n";
$a=<STDIN>;


Все равно ничего не получается. Может у меня что с наcтройкой программы не правильно. Я пытаюсь работать в DZsoft Perl Editor 5.1  

Это сообщение отредактировал(а) hotdap - 6.5.2006, 22:40
PM MAIL   Вверх
Wowa
Дата 6.5.2006, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



Хм. А ошибку 500 не выдает? Нет возможности посмотреть лог ? 
PM WWW   Вверх
hotdap
Дата 6.5.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.4.2006

Репутация: нет
Всего: нет



Ошибку не выдает.
Мне кажется программа не видит команды $a=<STDIN>;, потому что если я делаю такой код:
Код

#!\local\perl\bin\
print "Content-type: text/html\n\n";
print "Введите имя?\n";
$a=<STDIN>;
print "<html><h1>test</h1></html>\n";
$a=<STDIN>;


то есть заменю пременную а на тест, то программа пролетает строку $a=<STDIN>; и сразу выпечатывает:
Ваше имя?
<html><h1>test</h1></html>

не дожидаясь пока я введу что либо с клавиатуры.  

Это сообщение отредактировал(а) hotdap - 6.5.2006, 22:56
PM MAIL   Вверх
Wowa
Дата 6.5.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

Репутация: нет
Всего: 290



убери весь хтмл и print "Content-type: text/html\n\n";

Ты ведь не в браузере работаешь, а если в браузере - то браузер, это не консоль. Поэтому у тебя STDIN ничего и нет.

Добавлено @ 22:59 
Вот, например, рабочий пример:
Код

#!/usr/local/bin/perl -w

print "Name : ";
$name = <STDIN>;
chop($name);
printf("Hallo, %s !\n",$name);

но запускать в консоли! 
PM WWW   Вверх
hotdap
Дата 6.5.2006, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.4.2006

Репутация: нет
Всего: нет



Запустил я Ваш код в консоли. После обработки кода программа выдала сообщение одной строкой:
Name : Hallo,  !  , опять же не дожидаясь ввода переменной.

Я уже наверное замучил своими делетантскими вопросами, но как говориться у Вас в подписи:
"Только действия приближают Ваш успех! Только работая Вы добьетесь намеченного!"
 
PM MAIL   Вверх
nitr
Дата 6.5.2006, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



smile
Код
#!perl
print "Input yor name: ";    
$a= <STDIN>;
print "Your name is $a";


Цитата
D:\_\111>1.pl
Input yor name: ffff
Your name is ffff


Добавлено @ 23:40 
Да! и если ты хочешь скрипт CGI... то <STDIN> зачем используешь smile) ? передавай параметром smile
благо литературы полно... ссылки тут

Добавлено @ 23:43 
для начала всё же стоит прочесть лит-ру по программированию PERL... и скрипт свой первый легче будет написать...
Perl - это не только веб-программирование. Если всё же у тебя вопрос по CGI, то он не в тот раздел задан ;) Это к слову 


--------------------
PM   Вверх
sharq
Дата 7.5.2006, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



hotdap
Цитата(hotdap @  6.5.2006,  18:22 Найти цитируемый пост)
#!\local\perl\bin\

хитрый у тебя путь к perl  smile 


Цитата(hotdap @  6.5.2006,  18:22 Найти цитируемый пост)
#!\local\perl\bin\
print "Введите имя:\n";
$a = <STDIN>;
print "$a";


Вот вариант:
Код

#!\local\perl\bin
print "Enter name:\n";
chomp($a = <>);
print "Name is $a\n";


Если не сработает, то приведи листинг работы скрипта.

 smile

Добавлено @ 13:51 
Запускать perl название_скрипта.pl (это на всякий случай)
 


--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1255 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.