# 시스템 시스템 명령어를 실행하는 가장 쉬운 방법은 백틱으로 감싸는 것입니다. 결과값을 반환 받을 수 있습니다. ```perl @files = `ls -al`; ``` ## eval ## system ```perl system("ls -al"); ``` 결과값은 화면으로 출력됩니다. ## fork fork()는 프로세스를 복제합니다. 새로 생성된 자식 프로세스는 fork()된 시점부터 진행되며 0을 반환받습니다. 부모 프로세스는 자식 프로세스의 프로세스 번호를 반환 받습니다. 프로세스 생성에 실패한 경우에는 `undef`가 반환됩니다. ```perl my $process_id = fork(); if ($process_id == 0) { # Child process print "Child process.\n"; } else { # Parent process print "Parent process.\n"; } ``` 생성된 자식 프로세스를 종료하려면 `exit()`를 사용합니다. 자식 프로세스가 모두 종료되기 전에는 메인 프로세스가 종료되지 않습니다. ```perl exit(0); ``` ## 프로세스 특수변수인 `$$` 또는 `$PROCESS_ID`를 사용해서 현재 프로세스 번호를 알아낼 수 있습니다. - exec `system()`과 비슷하지만 명령 실행 전에 현재 프로세스가 종료됩니다. - kill 프로세스 그룹에 종료 신호를 보냅니다. ```perl kill("INT", @proc_list); ``` - sleep ```perl sleep(5); # 5초 동안 쉽니다. ``` - times 프로그램에 소요된 시간을 리스트로 반환합니다. - wait 자식 프로세스가 종료될 때까지 기다립니다. 자식 프로세스가 없다면 -1이 반환됩니다. ```perl $process_id = wait(); ``` - waitpid