ошибки в macro-плагине
Добавлено: Чт дек 04, 2008 3:48 am
$.lastpm криво работает с именами с пробелами (есть альтернативное решение)
Код: Выделить всё
@arg ("<argument>", <n>)
возвращает <n>ый текстовой <параметр>
Код: Выделить всё
$s = aa bb cc dd
log @arg( "$s", 2 )
$n = 2
log @arg("$s",$n)
Код: Выделить всё
if ($pair[0] eq 'arg') {
return $_[0] =~ /\@(arg)\s*\(\s*(".*?",\s*\d+)\s*\)/
}
Код: Выделить всё
if ($pair[0] eq 'arg') {
return $_[0] =~ /\@(arg)\s*\(\s*(".*?",\s*(\d+|\$\.?[a-z][a-z\d]*))\s*\)/
}
Код: Выделить всё
macro hh {
$s = aa bb, cc., dd::ee;ff'gg""h!ii?
$n = 1
log Строка: $s
log Разделителями слов считаются символы: " ,.:;'"!?", а также спец символы "\r" и "\n"
while ($n <= 9) as loop
log Слово номер $n: @arg("$s",$n)
$n++
end loop
}
Код: Выделить всё
macro hh
[macro][log] Строка: aa bb, cc., dd::ee;ff'gg""h!ii?
[macro][log] Разделителями слов считаются символы: " ,.:;'"!?", а также спец символы "\r" и "\n"
[macro][log] Слово номер 1: aa
[macro][log] Слово номер 2: bb
[macro][log] Слово номер 3: cc
[macro][log] Слово номер 4: dd
[macro][log] Слово номер 5: ee
[macro][log] Слово номер 6: ff
[macro][log] Слово номер 7: gg
[macro][log] Слово номер 8: h
[macro][log] Слово номер 9: ii
Код: Выделить всё
# gets word from message
sub getWord {
my ($message, $wordno) = $_[0] =~ /^"(.*?)",\s?(\d+)$/s;
my @words = split(/[ ,.:;\"\'!?\r\n]/, $message);
my $no = 1;
foreach (@words) {
next if /^$/;
return $_ if $no == $wordno;
$no++
}
return ""
}
Код: Выделить всё
my @words = split(/[ ,.:;\"\'!?\r\n]/, $message);