Титла: Въпрос относно open() на perl. Публикувано от: saturn_vk в Mar 05, 2004, 16:27 Опитвам се да направя един скрипт да отвори даден файл, и като намери ред със определена начална дума на него, да отреже тази дума и да изпише всичко останало.
примерно, използвам думата thumb във скрипта и режа самата дума и празното място след нея.
проблема е, че като я насоча към файла, (направил съм един файл със няколко реда, единият от които започва със тази дума), скрипта стартира, но не изписва нищо(общо взето $xname като че ли си остава undef). Някой знае ли къде греша? Титла: Въпрос относно open() на perl. Публикувано от: pink в Mar 05, 2004, 17:17 Дай примерния файл и командния ред, с който пускаш скрипта. Нещо не разбрах какво искаш да направиш.
Титла: Въпрос относно open() на perl. Публикувано от: mironcho в Mar 05, 2004, 17:27 Може например така:
но ако искаш скрипта да върши само това, можеш да използваш grep/awk... Титла: Въпрос относно open() на perl. Публикувано от: peio в Mar 05, 2004, 20:32 perl си е тежка артилерия в повече от случаите, а grep, sed и awk се подценяват много.
ето ти пример за това, което искаш :
може и да може да се направи само с grep като се ползват регулярните изрази, но и така става Титла: Въпрос относно open() на perl. Публикувано от: mironcho в Mar 05, 2004, 22:07 Иначе ето как можеш ад го направиш само със sed:
а за perl кода дето по горе ти го постнах - не обърнах внимание че взимаш файла като аргумент, така че може да се преправи скрипта така:
Титла: Въпрос относно open() на perl. Публикувано от: peio в Mar 05, 2004, 22:15 и аз да не остана длъжен с едно по-лошо решение с awk само :
но по-добре да се ползва това на mironcho Титла: Въпрос относно open() на perl. Публикувано от: saturn_vk в Mar 08, 2004, 23:04 грешката ми явно е била че затварям файла прекалено късно, или въобще не го затварям.
иначе мерси на mironcho че предостави тази алтернатива на скрипта. обаче сега следва и нов въпрос за open() на perl.
$filehandle е прихванато от upload на CGI. И според няколко man документа и редица текстове във мрежата, горният код би трябвало да е правилен(освен ако не съм пропуснал пак нещо). Файла се създава както си му е реда. Проблема е обаче, че си остава празен. А нямам и представа защо става така, няма никакви предупреждения когато се пуска скрипта. Също много интересно е, че самият файл се създава само ако директорията е +х. Ако си е 666, а не 777, файла въобще няма да се създаде, и ще изписка че няма разрешение да го създаде. |