Автор Тема: filehandle и use strict  (Прочитано 3751 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
filehandle и use strict
« : 29 Ноября 2004, 17:14:14 »
Ничего не понимаю(с)....

Хочу открыть файл при наличии директивы use strict. При открытии типа open (FH, $fileName) вполне логично пишет "Bareword "FH" not allowed while "strict subs" in use". Как заранее объявить дескриптор такого формата, я пока в перлдоке не нашёл.
Кроме того perlopentut предлагает альтернативный вариант открытия файла: open( my $fh, $fileName ). На это версия Перла у провайдера пишет "Can\'t use an undefined value as a symbol reference", т.е. почему-то требует переменную со значением.
Конечно, я могу взять всю работу с файлом в скобки и сказать там no strict, но это будет отступление... :)

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
filehandle и use strict
« Ответ #1 : 29 Ноября 2004, 17:41:41 »
Цитировать
Forza:
Хочу открыть файл при наличии директивы use strict. При открытии типа open (FH, $fileName) вполне логично пишет "Bareword "FH" not allowed while "strict subs" in use".

чего то ты там сам намутил ибо ничего логичного я не вижу (может чего не понимаю)


#!/usr/bin/perl -w
use strict;
my $fileName=\'/text2-test.txt\';
open (FH, ">",$fileName)||die("Не могу открыть файл, $!");
print FH \'Hello,world!\';
close FH;

никаких ругательств, скорее у тебя где-то др. ошибочка закралась
 в исканиях.

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
filehandle и use strict
« Ответ #2 : 29 Ноября 2004, 17:49:36 »
Мда, твой вариант обращения с дескриптором работает. Бум искать ошибку.

Кстати, провайдерский перл ругается на open (FH, ">",$fileName) словами Too many arguments for open at filetest.pl line 5, near "$fileName)". Пришлось исправить на open (FH, ">$fileName").

А логичность я видел в том, что на мой взгляд use strict требует всё заранее объявлять, нет? :)

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
filehandle и use strict
« Ответ #3 : 29 Ноября 2004, 17:54:30 »
Цитировать
Forza:
провайдерский перл

:) похоже у них далеко не свежая версия перла
 в исканиях.

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
filehandle и use strict
« Ответ #4 : 29 Ноября 2004, 18:05:38 »
Ага, ниже 5.6.
По топику:
Например имеется массив с именами файлов(неважно как получили):

foreach $file (@my_file_arr) {
  
my $filename $file;
open($filename$filename);
close($filename)
}

ЗЫ: можно, конечно дескриптор забить статически FH или менять а-ля $FH="FH_$filename", но это на любителя. Я пользуюсь в основном первым вариантом.
« Последнее редактирование: 29 Ноября 2004, 18:12:56 от Skif »
Всё будет хорошо - я договорился!

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
filehandle и use strict
« Ответ #5 : 29 Ноября 2004, 18:08:18 »
Цитировать
Forza:
на мой взгляд use strict требует всё заранее объявлять, нет?

насколько я понимаю,
use strict; аналогично одновременному вызову:

use strict "vars";
ругается если переменная не объявлена

use strict "refs";
ругается при использовании символических ссылок

use strict "subs";
ругается при неосторожном обращении с именами подпрограмм
 в исканиях.

Оффлайн vladsu

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 271
  • +0/-0
  • 0
    • Просмотр профиля
    • http://vladislavsurguchev.eu/
filehandle и use strict
« Ответ #6 : 30 Ноября 2004, 00:48:51 »
Попробуйте переписать строку так
open (FH, "> $fileName")
----------------------------------------------
Мой сайт чёрно-белых фотографий из разных уголков мира тут

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28