- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
#!/usr/bin/perl
use strict;
<>;
while (my $line = <>) {
chomp($line);
my ($name, $surname, @phones) = map {
s/^7(\d{10})$/+7\1/;
s/^8(\d{10})$/+7\1/;
s/\"//g;
$_;
} split(";", $line);
print "BEGIN:VCARD\n";
print "VERSION:3.0\n";
print "FN:$name $surname\n";
print "N:$surname;$name;;;\n";
for my $phone(@phones) {
print "TEL;TYPE=CELL:$phone\n" if $phone;
}
print "END:VCARD\n";
}
Сей чудесный скрипт был написан после часа мучений и безуспешных попыток загрузить CSV с контактами на ведроид.
Dummy00001 21.09.2012 02:29 # +2
ну это как бы было стандартным началом многих великих вещей.
к сожалению это так и останется пятиминутным скриптом.
а какой ламер наваял бы это на VB, и уже бы во всю на инете продавал другим ламерам за $25.
ЗЫ никакого говна в скрипте особого нету. ну кроме конечно \1 на которое перл (с -w/use warnings(?)) должен был бы ругнутся что депрекэйтед и надо $1 использовать.
bormand 21.09.2012 07:21 # 0
А как же строки 7 и 8, которые можно было записать одной строкой s/^[78](\d{10})$/+7\1/;
> \1 депрекэйтед
Спасибо за информацию, если честно - не знал.
> а какой ламер наваял бы это на VB, и уже бы во всю на инете продавал другим ламерам за $25.
И энтерпрайз версию, которая позволяет выбирать колонки за $50.
Dummy00001 21.09.2012 12:53 # 0
> А как же строки 7 и 8, которые можно было записать одной строкой s/^[78](\d{10})$/+7\1/;
для такого мелкого скрипта это не говно, это фича. это позволяет например избежать изменения номеров с 8кой простым кометриованием строчки.
santa_microbe 21.09.2012 08:11 # 0