저는 Perl을 사용 중이며 루프에서 변수를 만들고 싶습니다. 그래서 각각의 루프는 다른 숫자로 변수를 만들어 낼 것입니다.Perl에서 for 루프를 사용하여 변수를 만드는 방법은 무엇입니까?
num1 = x;
두 번째 루프는 어떤 도움
저는 Perl을 사용 중이며 루프에서 변수를 만들고 싶습니다. 그래서 각각의 루프는 다른 숫자로 변수를 만들어 낼 것입니다.Perl에서 for 루프를 사용하여 변수를 만드는 방법은 무엇입니까?
num1 = x;
두 번째 루프는 어떤 도움
를 사용하여 배열에 대한
num2 =x;
감사를 생성하고 다수의 각 반복을 추가 예를 의 첫 번째 루프는 생성됩니다. 당신이 정말로 이름 그들에게해야 할 경우
my @nums;
for (1..10) {
push @nums, $_; # your `x'
}
, 다음 해시는 잘해야한다. I 은 권장하지 않지만 은입니다. 단순히 일류 변수를 사용하는 것과 같은 방법으로 체계적인 방법으로 "이름 지정"하는 방법을 보여줄뿐입니다. 배열이 비슷한 무언가를, 플러스 당신이 방법으로 점점 사전 순 대해 걱정할 필요가 없습니다 때
my %hash;
my $i = 0;
for (@list) {
$hash{ 'num' . ++$i } = $_;
}
는 다시이 자신의 순서에 따라 번호를 이름이 아니라 무의미하다.
변수를 명명하여 문제를 해결하는 것이 가장 좋은 방법인지 결정해야합니다.
*_
은 glob이지만, GLOB에서는 사용되지 않는 특정 슬롯이 있습니다. local %_
을 사용할 수 있습니다.
는 따라서 사이비 변수의이 유형의와 함께 입력 할 경우에만 추가 문자가 : 물론
$_{num001} += 43;
, 이것은 당신이
를 입력 할 필요가 추가 문자 같은 양이다$v{num001} += 43;
도 마찬가지입니다.
sprintf가 약간 복잡해 보이지만, 원칙적으로 동의합니다. 나중에 사용할 풀의 이름이 지정된 데이터를 추가해야하는 경우 해시를 사용하십시오. 대신 주문한 데이터 집합이 필요한 경우 배열을 사용하십시오. –
@JoelBerger, 렉스 순서 (보통 다른 사람들의 코드에서)를 가진 충분한 run-ins를 가졌다면, sprintf 형식 스펙으로 문자열과 숫자를 연결하는 것이 제 2의 본성입니다. – Axeman
배열을 사용하지 않는 방법이 있습니까? – adir
@adir - 그렇습니다.하지만 악의적이고 비논리적이며 어리 석고 천천히 악몽입니다. 이것은 정확히 배열이 설계된 것입니다. – Quentin
@Quentin - Thanks – adir