以下是示例代码:
my $test = "Mike Xavier Smith/123-45-1111/student";
my $name = substr( $test, 0, index($test, "/") );
my $ssn = substr( $test,index($test,"/"));
my $type = substr( $test,index($test, "/", 2) );
print "$name, $ssn, $type \n";
exit;
Run Code Online (Sandbox Code Playgroud)
输出:Mike Xavier Smith,/ 123-45-1111 /学生,/ 123-45-1111 /学生
这行substr($ test,index($ test,"/",2)); #offset应该是第二次出现的"/",这意味着它应该打印/学生.
但为什么它是从第一次出现"/"打印?
这不是第三个论点index.
my $test = "Mike Xavier Smith/123-45-1111/student";
my $start = 0;
my $end = index($test, "/", $start);
my $name = substr($test, $start, $end);
$start = $end+1;
$end = index($test, "/", $start);
my $ssn = substr($test, $start, $end);
$start = $end+1;
$end = index($test, "/", $start);
my $type = substr($test, $start, $end);
print "$name, $ssn, $type\n";
Run Code Online (Sandbox Code Playgroud)
大多数人都会使用split.
my $test = "Mike Xavier Smith/123-45-1111/student";
my ($name, $ssn, $type) = split(qr{/}, $test);
print "$name, $ssn, $type\n";
Run Code Online (Sandbox Code Playgroud)