Forum Webscript.Ru

Программирование => Perl => Тема начата: Dipper от 29 Октября 2002, 22:56:52

Название: "самомодификация" DATA
Отправлено: Dipper от 29 Октября 2002, 22:56:52
Была вот такая попытка изменить/добавить данные в блок
__DATA__ но безуспешная :(
Но нужно именно в данном скрипте сделать добавление, чтобы эти изменения сохранились  при следующем вызове. Подскажите плиз мож я не стого коонца захожу?

.........
$rd=();
print $rd;
print DATA "\\nother\\n";

__DATA__
master
.........
Название: "самомодификация" DATA
Отправлено: YA от 30 Октября 2002, 00:31:32
Ты не сможешь таким образом заставить твой сценарий изменить самого себя (если я тебя правильно понял). Для хранения данных используй внешний файл / БД.
Название: "самомодификация" DATA
Отправлено: КшЫуфксрук от 30 Октября 2002, 01:10:52
Таким образом нет, а другим - сколько угодно.

file test.pl
======================================
#!perl

open SELF, ">>test.pl";
print SELF "\\nprint \\"File has been changed\\\\n\\";";
======================================

Все прекрасно изменяется.
Название: "самомодификация" DATA
Отправлено: YA от 30 Октября 2002, 08:51:31
[OFF]
Цитировать
а другим - сколько угодно
Вопрос - нужжно ли это?[/OFF]
Название: "самомодификация" DATA
Отправлено: Evgeny от 30 Октября 2002, 12:25:32
Цитировать
Вопрос - нужжно ли это?

Бывает удобнее всё в одном файле хранить, и данные и код.
Я так иногда делаю, если данные не добавить, а перезаписать надо:

      open(F,"<$0");
      $newLine=$/;
      $/="__DATA__\\n";
      $body=;
      close(F);
      $/=$newLine;

      open(F,">$0");
      print F $body;
      print F "Новые данные.";
      close(F);
Название: "самомодификация" DATA
Отправлено: Dipper от 31 Октября 2002, 19:10:02
В принципе - у меня сие действие одноразовое (перворазовое)
именно с целью
Цитировать
Бывает удобнее всё в одном файле хранить, и данные и код.


Огромное всем спасибо!
И пиво Evgeny :))