전종필 변수들은 모두 메모리상에 존재합니다. 해쉬 역시 마찬가지이죠. 하지만, 때로, 우리는 해쉬를 디스크상에 올려두고, 다른 프로그램이나, 혹은 같은 프로그램의 다음 실행에서도 사용하고 싶을 수 있습니다. 물론 데이터베이스를 사용할 수도 있지만, 그렇게까지 복잡하게 하고 싶지 않고, 또, 그냥 평범한 해쉬처럼 사용하고 싶습니다. 이럴때는 tie 함수를 DB_File 모듈과 함께 사용합니다. 물론, GDBM_File이나 NDBM_File을 사용할 수도 있지만, 여기서는 설명이 간단한 DB_File 모듈을 사용하겠습니다. 기본적인 원리(혹은 뉘앙스)는 같으니까요. 아래 프로그램을 만들어서 먼저 실행해 보십시오. tie로 해쉬와 파일을 연결합니다. 파일의 포맷은 DB_File입니다. 그래서 맨 위에는
use DB_File 이 들어 갑니다. 해쉬 사용이 끝나면 untie를 해 줍니다.그리고 다음 프로그램을 만들어서 같은 디렉토리에서 실행해 봅니다. 두 개의 프로그램은 같은 내용의 해쉬에 대해 동작했다는 것을 알 수 있습니다.tie 함수는 메모리상의 해쉬와 디스크상의 버클리 DB(버전 1)를 연동시켜 줍니다. (물론, 서두에 밝힌 것처럼 꼭 버클리 DB가 아니라도 사용할 수 있습니다.) 디스크상의 데이터를 마치 메모리상에 있는 것처럼 사용하게 해 주는 것이지요. 단순한 데이터라면 굳이 부하가 많이 걸리는 데이터베이스를 사용할 필요없이 위와 같이 tie를 사용하면 됩니다. |
Tips in Action > 배열과 Hash >