perl 에서 문자열을 인자로 넘길때
글쓴이: mr.lee / 작성시간: 목, 2005/08/25 - 1:06오후
문자열을 빈번하게 다른 메소드로 넘길일이 있을때..
문자열도 레퍼런스로 넘기는게 효율적인가요?
아님, 그냥 넘겨도 복사하지 않고 자바처럼 '참조를 값으로' 넘기는지요?
sub prn
{
my $a = shift;
print($$a);
}
my $str = "abc\n";
prn(\$str);
음 지금 테스트를 해보니 레퍼런스로 넘길때가 오히려 조금 더 시간을 잡아먹네요. '참조'의 '참조'를 값으로 넘기게 되니까 한단계가 늘어서 그런가 싶기도 합니다.
Forums:


결론부터 말씀드리자면,1. 인자는 기본적으로 복사가 되서 넘어갑니다.
결론부터 말씀드리자면,
1. 인자는 기본적으로 복사가 되서 넘어갑니다.
2. 인자의 크기가 작을때는 큰 차이가 없지만, 크기가 커지면 참조형식이 빠릅니다.
제가 테스트에 사용한 코드입니다.
#!/usr/bin/perl -w use Benchmark qw( cmpthese ); $str = "x"x100; cmpthese(-5, { a => 'sub1', b => 'sub2', }); sub sub1 { sub1_1($str); } sub sub1_1 { $aa = shift; } sub sub2 { sub2_1(\$str); } sub sub2_1 { $aa = shift; }댓글 달기