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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расскажите пожалуйста о print, Вопрос новичька 
:(
    Опции темы
Dima85
Дата 6.9.2009, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Когда только начинал учить Perl 
Выводил данные так:
Код

print "текст";

или так
Код

print 'текст';


Совсем недавно узнал о достаточно новом для себя способе, но нигде не могу найти толкового описания. Расскажите пожалуйста чем отличается такой вывод от предыдушищ описанных мною?:
Код

print qq~текст~;


Так же будет очень интересно услышать, возможно есть какие-то еще команды для вывода текста? И каким лучше пользовать?

PM MAIL   Вверх
sir_nuf_nuf
Дата 6.9.2009, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

$str = 'bu';
$str = "$bu";
$str = q/bu/;
$str = qq/bu/;
$str = <<<END;
bu
END;
$str = <<<"END";
bu
END;

Общее правило. То что в двойных кавычках (""  или qq//) - осуществляет интерполяцию переменных, т.е.
Код

$a = 1;
$str = "hello, $a helo!";  # hello, 1 helo!



Ну так же еще есть
Код

$str = `ls -la`;
$str = qx/ls -la/;

запуск команд оболочки и получение их вывода.


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Dima85
Дата 6.9.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо. А есть какая-то разница допустим между ""  и qq//?

Я где-то на это форуме слышал высказывание что print вообще уже устарел и использовать его не стоит. Если это так то почему? И что пришло ему на замену?

Это сообщение отредактировал(а) Dima85 - 6.9.2009, 22:51
PM MAIL   Вверх
sir_nuf_nuf
Дата 6.9.2009, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Dima85 @  6.9.2009,  22:50 Найти цитируемый пост)
А есть какая-то разница допустим между ""  и qq//?

очень небольшая:
если вы используете ", то в самой строке вам нужно экранировать символ кавычки
а если qq//  или qq** или еще какой - то вам нужно экранировать этот самый символ (/ или * или как у вас ~)


Цитата(Dima85 @  6.9.2009,  22:50 Найти цитируемый пост)
Я где-то на это форуме слышал высказывание что print вообще уже устарел и использовать его не стоит

Вот негодяи. Это наверняка PHP-шники, они совсем не уважают олд-скул. Поклоняются новомодному echo. Не слушай их =)
А серьезно.. print - это оператор вывода данных в файл. Единственный в перл (если не считать различные вариации типа printf). Он не может устареть, ибо его нечем заменить. Ну некоторые предпочитают использовать обертки типа IO::Handle - это на вкус.

И да, не путайте print, c тем, что вы писали выше. "" и q// -  это способ записи литерала - т.е. строкового скаляра в программе. print - это вывод данных. Они никак не связаны.


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
Dima85
Дата 6.9.2009, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо большое. Вы уже не первый раз находите время и помогаете мне иногда наверное в совершенно бестолковых вопросах. Спасибо.

Насчет 
Код

И да, не путайте print, c тем, что вы писали выше. "" и q// -  это способ записи литерала - т.е. строкового скаляра в программе. print - это вывод данных. Они никак не связаны.

Да, да, я просто посчитал излишнем писать print т.к. сама тема посвещаня ему. 

PM MAIL   Вверх
TDrive
Дата 7.9.2009, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(sir_nuf_nuf @  6.9.2009,  23:01 Найти цитируемый пост)
Единственный в перл (если не считать различные вариации типа printf)


есть ещё syswrite()


PM MAIL   Вверх
KSURi
Дата 7.9.2009, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(sir_nuf_nuf @  6.9.2009,  23:01 Найти цитируемый пост)
Единственный в перл (если не считать различные вариации типа printf)

say


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
sir_nuf_nuf
Дата 7.9.2009, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(TDrive @  7.9.2009,  02:01 Найти цитируемый пост)
syswrite()

факт. я ошибался. действительно есть syswrite.

Цитата(KSURi @  7.9.2009,  10:42 Найти цитируемый пост)
say

ээ... вариация print


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
shamber
Дата 7.9.2009, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

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



Цитата(Dima85 @  6.9.2009,  22:50 Найти цитируемый пост)
print вообще уже устарел и использовать его не стоит

на сколько я помню, тут пробегала, тема о том что print в CGI это мазохизм smile
 Но никак не про "весь" print .
PM MAIL Jabber   Вверх
TDrive
Дата 7.9.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(shamber @  7.9.2009,  19:26 Найти цитируемый пост)
на сколько я помню, тут пробегала, тема о том что print в CGI это мазохизм smile


из серии если гвоздь не забивается то виноват молоток smile

PM MAIL   Вверх
Bulat
Дата 8.9.2009, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

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



Цитата(sir_nuf_nuf @  6.9.2009,  23:01 Найти цитируемый пост)
Поклоняются новомодному echo.


по-моему еще в C-shell'е присутствует такая команда как "echo".  Так что если мне не изменяет память, то все новое - это хорошо забытое старое  smile 


Цитата(Dima85 @  6.9.2009,  22:50 Найти цитируемый пост)
Я где-то на это форуме слышал высказывание что print вообще уже устарел и использовать его не стоит. Если это так то почему? И что пришло ему на замену?

Е-ех )) по-моему, еще в QBasic'e... или в Pascal'e (опять же если мне не изменяет память, но уже забываю) - print - это команда вывода на печать. "Принтер" собс-но )) 

А насчет устарел ))) Как уже было подмечено, для вывода в файл - самое оно. smile


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


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

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


 




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


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

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