Страница 1 из 1

Пап Карло, помоги чайнику с Перловкой

Добавлено: 20 ноя 2003, 13:01
Seaman
Надо разбить е-майл на юзера и домайн, а потом данные в обоих этих вариблах преобразовать в ловер кейс.
Ну разбивать, я сплитом разбиваю, а потом, когда пытаюсь сделать замену

Код: Выделить всё

$username = s/(\"?[^\"]+\"?)/\L$1/gi;
$domain = s/([^ <>\t]+\.[^ <>\t][^ <>\t]+)/\L$1/gi;
дает ошибку: "
Use of uninitialized value in substitution (s///) at 'filename' line 'X', <STDIN> line 1.
Use of uninitialized value in substitution (s///) at 'filename' line 'X2', <STDIN> line 1.
".
Что я опять не так делаю?
Это я пробую часть кода через DOS prompt.

Добавлено: 20 ноя 2003, 14:01
Seaman
Починил, как:

Код: Выделить всё

#!/usr/bin/perl -w
print "Enter Email address:\n";
chomp($address = <STDIN>);
@address = split('@', $address);
$user = $address[0];
$domain = $address[1];
#$user = s/(\w+)/\L$1/gi;
#$domain = s/(\w+)/\L$1/gi;
print "Username: \L$user\n";
print "Domain: \L$domain\n";
exit;
Но будет-ли так работать при вставлении в Оракл SQL?

Код: Выделить всё

$query = $dbh -> prepare ("UPDATE MEMBERS SET USER = '\L$user' WHERE MEMBER = $id");
$query -> execute;
$query -> finish;
$dbh->commit;
Нет пока возможности проверить вживую.

Добавлено: 20 ноя 2003, 14:32
папа Карло
сорри за задержку. только увидел. :)

у меня это будет примерно вот так выглядеть :)

Код: Выделить всё

use strict;

my $address = 'Ivan.Popoff@Nowhere.Com';

$address =~ s/^(.*)$/\L$1/g;
(my $user, my $domain) = split ( /\@/, $address);

print "$user $domain\n";

Добавлено: 20 ноя 2003, 17:26
Seaman
Вот спасибо! Век живи - век учись, как говаривали старые люди! :D

Добавлено: 21 ноя 2003, 05:13
Seaman
Еще раз спасибо, Пап Карло.
Исследование вопроса показало, что я просто потерял тильду '~' после '='. Что-то мне взбрело в голову, что она используется только при сравнении, но не при замене. (Старость - не радость :D ).

Добавлено: 21 ноя 2003, 11:01
папа Карло
хахаха. ок. u welcome :) пиво тащи :)

Добавлено: 21 ноя 2003, 13:40
Seaman
Буду в Ванкувере, обязательно, занесу! :wink:
Ты "Sleaman's Honey Brown" уважаешь?

Добавлено: 21 ноя 2003, 13:49
папа Карло
Seaman писал(а):Буду в Ванкувере, обязательно, занесу! :wink:
Ты "Sleaman's Honey Brown" уважаешь?
cream ale + dried squid :)

Добавлено: 21 ноя 2003, 13:52
Seaman
хе-хе-хе! O.K. :D