🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: algonet.amiga
Article #37

Re: Perl, insert char to string

#37
From: Erland Sommarskog
Date: Sat, 24 Feb 1996 00:00
44 lines
2655 bytes
Hans Malmberg (hansmbg@algonet.se) writes:
>   $dtdate = "$hour\k$min\k$sec\ss$year\h$mon\h$mday";

>Vad jag g�r att jag vill ha ett kolon (grafiskt) och
>d�rf�r stoppar jag in ett 'k' i str�ngen, programmet h�mtar
>...
>Men, jag ville ha 'c' f�r colon.  '12c05c44'
>
>Och, jag provade med att stoppa in ett 'c' i str�ngen,
>f�r att h�lla mig till engelsk syntax hela v�gen...
>Det gick inte, '\c' skrevs ut som 'd' n�r jag lusade av.
>
>Jag antar d� att '\c' betyder n�got i Perl som f�r
>utskriften 'd'.

Perl-manualen �r lite oklar, men mina experiment tyder p� att \cX,
d�r X �r godtyckligt tecken fr�n @ till _ interpoleras som mot-
svarande kontrolltecken. Dvs "\cG" f�r terminalens klocka att l�ta.

Sekvensen "\c$" blir d� allts� inte s�rskild meningsfull, men r�kar
resultera i ett "d".

Allm�nt g�ller f�r "\" i str�nginterpolering att framf�r tecken som
inte �r alfanumeriska s� betyder det att tecknet ska tolkas som det
�r, och inte i n�gon eventuell specialbetydelse. Precis motsatt �r
det f�r alfanumeriska tecken, h�r betyder "\" att tecknet har en
specialbetydelse och inte �r en bokstav eller en siffra. Det r�kar
nu vara s� att "c" har en s�dan specialbetydelse, men inte "k", "h"
eller "s", varf�r Hans' exempel synes fungera med "k" men inte "c".

Men hur ska han nu f�rfara? Det finns flera s�tt:

$dtdate = "${hour}c${min}c${sec}ss${year}h${mon}h${mday}";
$dtdate = $hour . "c" . $min . "c" . $sec . "ss" .
          $year . h . $mon . "h" . $mday;
$dtdate = join("c", $hour, $min, $sec) . "ss", join("h", $year, $mon, $mday);

${namn} �r ekvivalent med $namn och anv�nds n�r situationen s� kr�ver.
(Detta �r samma notering som i shell.) Punkt som anv�nds i andra exemplet
�r helt enkelt str�ngkonkatenering. Det g�r ocks� att anv�nda join som
sl�r ihop elementen i en lista till en str�ng med ett givet tecken som
separator.
-- 
Erland Sommarskog, Stockholm, sommar@algonet.se
Technical Details
Message-ID: <4gnnl6$lsl@sophocles.algonet.se>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <1377.6628T892T1845@algonet.se>

Show Full Headers
Complete Article Headers
X-Google-Language: SWEDISH,ASCII
X-Google-Thread: 10e356,92c90354a9a199a7
X-Google-Attributes: gid10e356,public
X-Google-Thread: fad40,92c90354a9a199a7
X-Google-Attributes: gidfad40,public
X-Google-Thread: f7a1c,92c90354a9a199a7
X-Google-Attributes: gidf7a1c,public
From: sommar@sophocles.algonet.se (Erland Sommarskog)
Subject: Re: Perl, insert char to string
Date: 1996/02/24
Message-ID: <4gnnl6$lsl@sophocles.algonet.se>
X-Deja-AN: 140885955
references: <1377.6628T892T1845@algonet.se>
organization: BF Beckasinen 13 u.p.a.
newsgroups: algonet.amiga,algonet.unix,swnet.unix