Code: $ cat test.txt line1;aaaaa line2;bbbbbb line3;ccc line4;dddd $ perl -ne '/(.+)(;.+)(?{ print "$1;${\substr($2,int length($2)\/2)}\n" })/' file.txt line1;aaa line2;bbbb line3;cc line4;ddd $
тема такая в читаем из бинарного фаила 4 ре байта. read BINFILE, $x, 4; байты такие 96 02 00 00 из них нужно получить 00000296 а потом в десятичную систему 662 как сделать? что то у меня с унпаком и принтф ни чо не выходит.
Сорри я не совсем так выразил то что хотел, я имел в виду что должно удаляться все то что стот перед знаком ; включая его самого.
Code: $ cat file line1;aaaaa line2;bbbbbb line3;ccc line4;dddd line5 $ perl -F\; -nae 'print $F[1]||$F[0]' file aaaaa bbbbbb ccc dddd line5 $
Доброго времени суток вам. Вопрос такой: Есть Файл большого размера. Он загоняется в массив а потом с массивом производятся различные действия. ВНИМАНИЕ ВОПРОС -- КАК МОЖНО СЧИТАТЬ ЕГО ПО ЧАСТЯМ ? (допустим по 2 мб) Или же каким образом можно ускорить процесс обработки файла ?
constanta read FILEHANDLE,SCALAR,LENGTH,OFFSET Считывает LENGTH байт данных из FILEHANDLE в переменную SCALAR. Возвращает число считанных байт или неопределенное значение в случае ошибки. также seek FILEHANDLE, POSITION, WHENCE Позволяет установить курсор в файле, определенном в переменной FILEHANDLE, на позицию POSITION в режиме, указанном в переменной WHENCE. Если переменная WHENCE содержит значение 0, то позиция отсчитывается от начала файла, если 1 то от текущей позиции и если 2, то от конца файла. Возвращает 1 в случае успеха и 0 иначе.
Предложите какой то вариант. Ну не может же быть такого что бы в perl не было решения такого вопроса. НУ Очень надо).
constanta, можешь попробовать прочитать его с помощью read(). Хотя не факт что это будет быстрее. Вообще посмотри на CPAN, там наверняка что-то есть по этому поводу! PS. IO::File, например.
open(TEST, $filename) || die "Can't open file\n"; while (<TEST>) { @a[$i] = $_; chomp @a[$i]; $i++; } close (TEST); чонить в этом роде или так (но скорее всего это уже для небольших файлов, потести в общем): open(TEST, $filename) || die "Can't open file\n"; @Mass = <TEST>; close (TEST);
constanta Code: open (SRC, "<file.txt"); Read: while(<SRC>) { push @mas, $_; last if @mas > 1000; } .... тут действия с массивом .... goto Read если размер массива больше 1000, произваодится выход из цикла while
чет закалебался гуглить) скрипту передаются параметры. один из них урл. но ему не нравится знак "&" в урле) как сделать?)
А в чем собственно проблема? Цифра int(rand(10000000)) Буква @a = ('a'..'Z'); $a[rand scalar @a] А дальше делай функцию под себя