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

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

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

Сообщение 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.
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение 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;
Нет пока возможности проверить вживую.
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

сорри за задержку. только увидел. :)

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

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

use strict;

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

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

print "$user $domain\n";
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение Seaman »

Вот спасибо! Век живи - век учись, как говаривали старые люди! :D
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение Seaman »

Еще раз спасибо, Пап Карло.
Исследование вопроса показало, что я просто потерял тильду '~' после '='. Что-то мне взбрело в голову, что она используется только при сравнении, но не при замене. (Старость - не радость :D ).
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

хахаха. ок. u welcome :) пиво тащи :)
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение Seaman »

Буду в Ванкувере, обязательно, занесу! :wink:
Ты "Sleaman's Honey Brown" уважаешь?
Аватара пользователя
папа Карло
Шарманщик
Сообщения: 8563
Зарегистрирован: 17 фев 2003, 15:04
Откуда: НН -> BC -> WA -> UT -> CA

Сообщение папа Карло »

Seaman писал(а):Буду в Ванкувере, обязательно, занесу! :wink:
Ты "Sleaman's Honey Brown" уважаешь?
cream ale + dried squid :)
Аватара пользователя
Seaman
Пользователь
Сообщения: 197
Зарегистрирован: 21 фев 2003, 13:26
Откуда: Ессентуки-Нврск-СПб-Торонто

Сообщение Seaman »

хе-хе-хе! O.K. :D
Ответить