The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"значение переменной совпала с оператором"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Perl)
Изначальное сообщение [ Отслеживать ]

"значение переменной совпала с оператором"  +/
Сообщение от dimdim on 15-Окт-10, 19:01 
Помогите разобраться
open(TESTFILE, "Z:/home/test1.ru/www/in2.txt");
$i=0;
while(<TESTFILE>) {
    $text= $_;
      if ($text=~/(\w+):(\S+):(\w+):(\w+)::(\S+)::/)
      {
       $user=$1;
       $passwd=$2;
       $cr=$3;
       $cr2=$4;
       $put=$5;
      }
     $strings[2*$i]=$user;       #user
     $strings[2*$i+1]=$passwd;    #passwd
     $i++;
        }

файл in2.txt

it:555e283e36d46da2e6caa4bf306e05f5:fdfd:fdfdf:dsdsds::
123:a43c006e3cfca6b385a80e3769fdda87:11:1:234::
на выходе $user = it как результат вывод
it:555e283e36d46da2e6caa4bf306e05f5:fdfd:fdfdf:dsdsds::
it:555e283e36d46da2e6caa4bf306e05f5:fdfd:fdfdf:dsdsds::

как сделать чтобы значение из файла воспринималось как текст, а не как оператор it ???

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "значение переменной совпала с оператором"  +/
Сообщение от PavelR (??) on 15-Окт-10, 19:26 
>[оверквотинг удален]
>      $i++;
>         }
> файл in2.txt
> it:555e283e36d46da2e6caa4bf306e05f5:fdfd:fdfdf:dsdsds::
> 123:a43c006e3cfca6b385a80e3769fdda87:11:1:234::
> на выходе $user = it как результат вывод
> it:555e283e36d46da2e6caa4bf306e05f5:fdfd:fdfdf:dsdsds::
> it:555e283e36d46da2e6caa4bf306e05f5:fdfd:fdfdf:dsdsds::
> как сделать чтобы значение из файла воспринималось как текст, а не как
> оператор it ???

Значение из файла воспринимается адекватно. Ошибка в скрипте.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "значение переменной совпала с оператором"  +/
Сообщение от Pahanivo (ok) on 15-Окт-10, 19:28 
область видимости переменных? )
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "значение переменной совпала с оператором"  +/
Сообщение от lepa on 16-Окт-10, 01:46 
($v1, $v2, $v3) = split(":", $_)

мне кажется, что так было бы лучше.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "значение переменной совпала с оператором"  +/
Сообщение от ACCA (ok) on 22-Окт-10, 23:31 
> open(TESTFILE, "Z:/home/test1.ru/www/in2.txt");
> $i=0;

1. убираем open и индекс для массива. Это не Basic

> while(<TESTFILE>) {
>   $text= $_;
>       if ($text=~/(\w+):(\S+):(\w+):(\w+)::(\S+)::/)

2. убираем ненужную переменную и проверки, если нет обработчика ошибок формата


>        $user=$1;
>        $passwd=$2;

[...]

3. убираем разбор ненужных переменных

>      $strings[2*$i]=$user;      
>      $strings[2*$i+1]=$passwd;    #passwd

4. убираем заполнение массива вручную.

Пишем:

#!/usr/bin/perl -w
use strict;
my (@fld,@strings);

while (<>) {
   @fld = split /:/;
   # здесь можно проверить значения @fld[0,1]
   push @strings, @fld[0,1];
}

запускаем script.pl < in2.txt

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "значение переменной совпала с оператором"  +/
Сообщение от Pahanivo (ok) on 24-Окт-10, 01:40 
ну вот взял и все испортил ))
так человек не научится ходить по граблям ))

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру