|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Alan Long 2:5030/1082.72 08 Feb 2002 01:30:02 To : Alexey A Kudacov Subject : <none> -------------------------------------------------------------------------------- * Originally from Alexey A Kudacov (2:5015/186) to All. AAK> У меня есть файл. Имеет вид: AAK> aaa|bbb|ccc| AAK> aaa1|bbb1|ccc1| AAK> Задача: читать файл построчно с конца. Варианты кончено есть, но AAK> хочется посмотреть более практичный и рациональный. Заранее AAK> спасибо! Можно попробывать банальный: open( IN, $file ); @array = reverse <IN>; close( IN ); for( $i = 0; $i < $#array; $i++ ) { print $array[$i]; } То есть чтение всего файла в память (массив) с последующим использованием функции reverse для переворачивания массива. Второй, более сложный вариант: use DB_File; $dbh = tie( @array, "DB_File", O_RDONLY, 0640, $DB_RECNO ); for( $i = $dbh->length; $i >= 0; $i-- ) { print @array[$i]; } untie @array; сейчас под рукой нету perl-а, так что проверить на практике данные примеры нет возможности, как и оценить быстодействие в том и в другом случае. AAK> [/Mo.Nashe.Radio/ Team] WBR, Alexey A Kudacov [ak@52.ru] -- With best, Ъ-· Ъ Е-ЧLaі\і <alan@x-rays.eu.org> --- timEd/386 1.10+ * Origin: X - Rays Station (2:5030/1082.72) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/4581c62f45e0.html, оценка из 5, голосов 10
|