squid acces.log timestamp olvashatóvá tétele

tail -f access.log  | perl -pe 's/\d+/localtime($&)/e'

Ugyanis (számomra ismeretlen okból) az access.log fájlban a bejegyzések időpontja ú.n. Unix time. (érdemes elolvasni a wiki bejegyzést, ha nem tudod, mi ez)
Érdekesség a localtime() viselkedése. Jó, doksiban le van írva, de aki nincs hozzászokva a perl hülyeségeihez, azt érik meglepetések.
Nem mindegy, hogy
print localtime();
vagy
my $a=localtime(); print $a;

Szerintem ez nem volt túl jó ötlet a perl fejlesztőitől, dehát ez van... :)

Update (2020.01.05) :
Végre felfogtam a dolgot most, hogy több mint egy év elteltével újra elővettem a témát és fórumon akartam kérdezni róla. Szóval ez nem a localtime, hanem úgy általában perl sajátosság: alapjáraton megvan, hogy milyen formátumban adja vissza az eredményt a localtime. De... ha egy skaláris változóba teszem a visszaadott értéket, akkor a perl automatikusan végez egy scalar() konverziót.
Szóval a
my $a=localtime(); print $a;

egyenértékű egy
print scalar(localtime());
paranccsal.

Megjegyzések

Népszerű bejegyzések ezen a blogon

squid - X-Forwarded-for

Command line dedup