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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Segmentation fault, трабл-грабл 
:(
    Опции темы
Andrey1
Дата 31.8.2004, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Написал скрипт, который должен парсить фортрановские подпрограммы (subroutine) в отдельные файлы, подпихнул ему файл в 800kb и тут сабж! Для маленьких файлов такой "байды" не было. Вылетает, видимо, в ...~=s/../.. Это как нибудь лечится?
Код

#!/usr/bin/perl -ws
#use Data::Dumper;
my $a_in=shift(@ARGV);
#open GR, $a_in or die;
#local $/;
#my $t = <GR>;
my $t='';
   open (my $fh, $a_in) or die "could not open $a_in\n";
   while  (<$fh>) {
       my $nline = $_;
#     chomp($nline);
       $t =join('',$t,$nline);
   }
   close ($fh) or die "could not open $a_in";

print "file $a_in was read\n";
#print "t=$t\n";

my ($c1,$s,$sn,$sb,$e,$res);
my $c = '[*|c|C]';
while ($t =~ s/(($c.*\n)*?)(\s+subroutine)\s+(\S*)((.*?\n+)*?)(\s+end)\n+//i) {
$c1=$1; $s=$3; $sn=$4; $sb=$5; $e=$7; $res = $c1.$s.$sn.$sb.$e;
print "Cut function $sn\n";
  my $fh;
   open ($fh, '>'.$sn) or die "could not open $sn";
   print $fh $res;
   close $fh;
}
print "Done\n";
print "The rest:-->", $t,"<--\n";


Это сообщение отредактировал(а) Andrey1 - 1.9.2004, 11:40


--------------------
Созерцание и мудрость - едины. Соцерцание - это основа мудрости, а мудрость - это функция (т.е. умение использовать) созерцания.
из сутры помоста шестого патриарха Хуэйнена
PM MAIL WWW ICQ   Вверх
Secandr
Дата 31.8.2004, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

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



Лечится:
Код
   open (my $fh, $a_in) or die "could not open $a_in\n";
  while  (<$fh>) {
      my $nline = $_;
      $nline=~s/****/****/;
  }
  close ($fh) or die "could not open $a_in";



--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Andrey1
Дата 1.9.2004, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ладно. И часто случается "segmentation fault"? Какой размер строки можно обрабатывать заменой s/.../... ?


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


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

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


 




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


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

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