2010-04-11 6 views
1

Mon code comme ci-dessous, Comment supprimer l'espace blanc après ajouter bonjour. à chaque ligne.Comment insérer une sous-chaîne à chaque ligne en perl

#!C:\Perl\bin\perl.exe 
use strict; 
use warnings; 
use Data::Dumper; 

my $fh = \*DATA; 

#my($line) = $_; 
while(my $line = <$fh>) 
{ 
    print "Hello.".$line; 
    chomp($line); 

} 


__DATA__ 
Member Information 
    id = 0 
    name = "tom" 
    age = "20" 

Sortie:

D:\learning\perl>test.pl 
Hello.Member Information 
Hello. id = 0 # I want to remove the white space between Hello. and id 
Hello. name = "tom" # same as above 
Hello. age = "20" # same 

D:\learning\perl> 

Répondre

2

Une façon serait de supprimer l'espace blanc à partir des données lui-même comme:

__DATA__ 
Member Information 
id = 0 
name = "tom" 
age = "20" 

Autre moyen serait d'enlever le premier espace blanc de $line avant d'imprimer:

Il suffit d'ajouter cela avant le print:

$line=~s/^\s+//; 
2

Si chaque ligne dispose de 4 places de premier plan, vous pouvez utiliser:

substr $line, 0, 4, ""; 
1

Je supprimerait la chaîne et ajouter bonjour dans un go

while (<DATA>) { 
    s/^\s+ /Hello./x ; 
    print ; 
} 

^= ancrage au début de chaîne

\ s + = un ou plusieurs espaces

/x = permettre l'espace supplémentaire dans la regex pour plus de clarté

ou plus verbeux

while(my $line = <$fh>) 
{ 
    $line =~ s/^\s+ /Hello./x ; 
    print $line ; 
} 
Questions connexes