Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на языке Perl


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2035
∙ повысить рейтинг »
Хватов Сергей
Статус: Профессионал
Рейтинг: 335
∙ повысить рейтинг »
Hubbitus
Статус: 10-й класс
Рейтинг: 89
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / Perl (Перл)

Номер выпуска:126
Дата выхода:26.11.2010, 01:30
Администратор рассылки:Калашников О.А. (Руководитель)
Подписчиков / экспертов:133 / 26
Вопросов / ответов:3 / 4

Вопрос № 40337: Значит хочу для себя сделать простой скрипт, который бы искал в файлах фразу и заменял бы ее. Естественно, что в качестве файлов можно задавать и сами файлы и папки. Я знаю, что это реализовано во многих текстовых редакторах (у меня на данный м...


Вопрос № 35768: Друг попросил найти следующий скрипт (уверяет что гдето видел в журнале на perl). Через сервак провайдера не проходят файлы mp3. Zip, EXE проходят нормально. Задача стоит найти хостинг и скрипт который бы скачивал себе и переименовывал файлы ...
Вопрос № 48272: Здравствуйте, вот написал типа программку... но что-то она не работает, не подскажите-ли вы мне где я допустил ошибку, Заранее всех благодарю....

Вопрос № 40337:

Значит хочу для себя сделать простой скрипт, который бы искал в файлах фразу и заменял бы ее. Естественно, что в качестве файлов можно задавать и сами файлы и папки.
Я знаю, что это реализовано во многих текстовых редакторах (у меня на данный момент два имеет такую возможность), но еще раз повторю, мне хочется это сделать для себя.
Проблема встала такая. Все параметры естественно передаются через командую строку. Так вот, как мне определить чем является параметр папкой или файлом ? Если это папка я применяю операцию /* через которую перебираю все подпапки и файлы через рекурсию. Но проблема и заключается в том, что мне нужно как-то узнать, является ли этот параметр файлом или папкой. Если это приминить к файлу (/*), Perl попросту пропустит его, посчитает неправильным, в чем он абсолютно.
Делаю я это под Windows. В WINAPI, например, это можно узнать без труда, через FILE_ATTRIBUTE_DIRECTORY, если бы это бы UNIX, то там тоже имеется специальный флаг, значение которого без труда можно получить, но у меня Windows. Как можно это узнать в Perl ?

Отправлен: 15.04.2006, 08:56
Вопрос задал: RedDevil
Всего ответов: 1
Страница вопроса »


Отвечает Thomas Arden :
Здравствуйте, RedDevil!
делается это элементарно:

foreach (@ARGV) {
if (-f $_) {
# process argument as file
} elsif (-d $_) {
# process argument as directory
}
}

а вообще, для этого, imho, лучше использовать find & sed. сборки под винду есть (http://unxutils.sourceforge.net/)

Ответ отправил: Thomas Arden
Ответ отправлен: 15.04.2006, 16:24

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 93067 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 35768:

    Друг попросил найти следующий скрипт (уверяет что гдето видел в журнале на perl).
    Через сервак провайдера не проходят файлы mp3.
    Zip, EXE проходят нормально. Задача стоит найти хостинг и скрипт который бы скачивал себе и переименовывал файлы mp3.

    Т.е. заходим на страницу, пишем в окошке URL на файл mp3, он закачивается на страницу с расширением скажем mpm.

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

    Отправлен: 20.02.2006, 01:14
    Вопрос задал: Стас (Специалист)
    Всего ответов: 1
    Страница вопроса »


    Отвечает Chief (Практикант) :
    Здравствуйте, Стас!
    я где-то встречал такой метод обхода подобных ограничений:
    вместо mp3 набирать %6D%70%33

    Ответ отправил: Chief (Практикант)
    Ответ отправлен: 20.02.2006, 14:14

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 84748 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 48272:

    Здравствуйте, вот написал типа программку... но что-то она не работает, не подскажите-ли вы мне где я допустил ошибку,
    Заранее всех благодарю.

    Отправлен: 05.07.2006, 20:04
    Вопрос задал: Lperw
    Всего ответов: 2
    Страница вопроса »


    Отвечает Muad Dib (Х Заблокирован) :
    Здравствуйте, Lperw!

    #!/usr/bin/perl -w
    print qq[Привет, как вас зовут?\n];
    $name = ; chomp $name;
    $answer="y";
    while ($answer =~ "y") { # -->>> для сравнения строк == не используется!!!!
    print qq[$name, угадай число от 0 до 5.\n];
    $rand_num = int(rand 5);
    $user_num = ; chomp $user_num;
    if ($user_num != $rand_num) {
    print qq[Ответ не верный.\n]
    }
    else {print qq[Поздравляю $name, вы угадали!!!];}
    print "Хотите повторить? (y/n)\n";
    $answer = ; chomp $answer;
    }

    -----
    Use Linux - be free!

    Ответ отправил: Muad Dib (Х Заблокирован)
    Ответ отправлен: 05.07.2006, 21:47

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 105682 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает -OC- (Специалист) :
    Здравствуйте, Lperw!
    ошибка у вас здесь :
    while ($answer == "y") {

    для сравнения строк используется операторы (в скобках их эквиваленты для числовых переменных)

    eq ( == )
    ne (!= )
    lt (<)
    gt (>)
    le (<=)
    ge (>=)

    возможен вариант использования поиска по шаблону , как была написано в предидущем ответе ( кстати не правильно и синтаксически и логически )
    примерно так :

    while ($answer =~ /^y$/) {
    или
    while ($answer =~ m/^y$/) {

    синтаксическая ошибка - не указан опреатор поиска - //( m//)
    логическая ошибка - совпадение будет в любом слове в котором будет содежаться буква "y". Т.е. если пользователь введет любое сочетание букв в котором окажется и "y", то это будет считаться как утвердительный ответ.(ну это в двух словах). В указаном мной примере будет осуществляться поиск только единственной буквы "y" и ничего больше, т.е. при вводе только одной буквы у ответ будет утвердительным.

    Ответ отправил: -OC- (Специалист)
    Ответ отправлен: 06.07.2006, 18:40

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 105832 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    подать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.23 от 23.11.2010

    В избранное