🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.perl
Article #52139

Zaawansowane formatowanie stringa - istenieje w Perl?

#52139
From: Moper
Date: Sun, 02 Jan 2011 13:12
32 lines
2086 bytes
Witam

Mam trochę zmiennych (ale mogę też zrobić np. hasha) z prostymi wartościami 
(tekst, liczba) i chcę sformatować z nich tekst. Np.: zmienne: $first, 
$last, $yearborn, $yeardied etc.

I chcę mieć:
Jan Kowalski (1921-1990)

Czyli z grubsza "$first $last ($yearborn-$yeardied)"

I teraz: wiekszość wartości może być undef, wtedy formatowanie zmienia się 
wg jakiejś tam logiki. W tym prostym przypadku jeśli nie ma ani daty 
urodzenia ani daty śmierci, cały nawias trzeba pominąć. Ponadto dochodzi 
prosta logika typu chcę w stringu coś tylko jeśli jakaś inna zmienna (nie 
użyta bezpośrednio w stringu) jest taka i taka, lub jeśli z danego fragmentu 
wyszedł tekst pusty to wstaw coś innego etc.

Mam tego formatowania sporo i chcę mieć z tym dużą elastyczność. A na chwilę 
obecną do formatowania są funkcje z ogromem if'ów. Ponadto chciałbym mieć 
sposób formatowania jakoś konfigurowalny.

A więc czy istnieje coś w Perlu, lub jakichś dodatkach, co pozwala na coś 
takiego?
Wyobrażam sobie to tak, że jeden string z kombinacjami dziwnych znaczków 
(ala regexp) zrobi wszystko, np:

$last $first ?($yearborn&&$yeardied)\($yearborn-$yeardied)

ale jestem otwarty na cokolwiek.

Pozdr. 
Technical Details
Message-ID: <ifptj3$24kk$1@opal.icpnet.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsb.icpnet.pl!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!newsb.icpnet.pl!not-for-mail
From: "Moper" <brak@meilu.pl>
Newsgroups: pl.comp.lang.perl
Subject: Zaawansowane formatowanie stringa - istenieje w Perl?
Date: Sun, 2 Jan 2011 14:12:03 +0100
Organization: ICP News Server
Lines: 33
Message-ID: <ifptj3$24kk$1@opal.icpnet.pl>
NNTP-Posting-Host: d213-232.icpnet.pl
Mime-Version: 1.0
X-Trace: opal.icpnet.pl 1293973923 70292 109.173.213.232 (2 Jan 2011 13:12:03 GMT)
X-Complaints-To: abuse@icpnet.pl
NNTP-Posting-Date: Sun, 2 Jan 2011 13:12:03 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Windows Mail 6.0.6002.18197
X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6002.18263
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit