2010-07-30 22 views
1
$ab = "asljdhashdklasjkl ;dajs;ld"; 

我想要$ab的前10個字符。我如何拼接一個標量變量?

可以使用splice函數嗎?

+0

http://perldoc.perl.org/functions/splice.html – 2010-07-30 09:14:25

回答

6
substr($ab, 0, 10) 

瞭解更多關於substr功能here

+0

使用4-ARG SUBSTR,而不是左值SUBSTR – 2010-07-30 09:02:55

+1

這意作爲一個右值。他想獲得前10個字符,而不是替換它們。 – Amadan 2010-07-30 09:04:50

-2
#! /usr/bin/perl 
use strict; 
my $info = "asljdhashdklasjkl ;dajs;ld"; 
my @personal = split(//, $info); 
print @personal[0..9]; 


C:\Documents and Settings\Administrator>perl perltest.pl 
asljdhashd 
C:\Documents and Settings\Administrator> 
C:\Documents and Settings\Administrator>type perltest.pl 
#! /usr/bin/perl 
use strict; 
my $info = "asljdhashdklasjkl ;dajs;ld"; 
my @personal = split(//, $info); 
print @personal[0..9]; 
C:\Documents and Settings\Administrator> 
+0

除非在雙引號中包含數組切片,否則'print'語句將不起作用。即使這樣,它也會在默認情況下打印空格分隔的字符。 – Zaid 2010-08-02 04:47:20

+0

@ Zaid ..我測試了這個和它的工作。請檢查你的聲明是否正確! – Vijay 2010-08-02 06:13:57

0

SUBSTR您例如偉大工程。接頭的陣列上運行,所以你需要往返它:

#!/usr/bin/perl 
my ($ab, @ab, @first_ten, $first_ten); 

$ab = "asljdhashdklasjkl ;dajs;ld"; 

@ab = split(//, $ab); 
@first_ten = splice(@ab, 0, 10); 

$first_ten = join('', @first_ten);