2012-12-28 1 views
0

작은 문자열을 실행 사이에 저장해야하는 스크립트를 작성했습니다. 어떤 CPAN 모듈을 사용하여 프로세스를 가능한 간단하게 만들 수 있습니까? 이상적으로 나는 다음과 같은 것을 원할 것입니다.Perl에 작은 캐시 파일을 저장하는 데 사용할 모듈은 무엇입니까?

use That::Module; 
my $static_data = read_config('script-name'); # read from e.g. ~/.script-name.data 
$static_data++; 
write_config('script-name', $static_data); # write to e.g. ~/.script-name.data 

파일 저장과 구문 분석은 필요하지 않습니다. 이 파일들을 거기에 저장할 수있는 많은 OS와 장소가 있습니다. 그래서 나는 그 부분을 직접하고 싶지 않습니다.

답변

0

단일 문자열 (예 : 'abcd1234') 인 경우 일반 파일을 사용하고 open으로 쓰기 만하면됩니다.

좀 더 진보 된 것을 찾고 있다면 Config::Simple 또는 JSON::XS을보세요. Conifg :: Simple에는 자체 함수가있어 파일에 쓸 수 있으며 JSON은 일반 open 만 사용할 수 있습니다.

+0

거기에는 여러 가지 다양한 OS와 장소가있어 이러한 부분을 직접 수행하고 싶지 않습니다. – Andreas

1

그냥 휴대용 펄 데이터 구조의 지속성 및 휴대용 "일반 설정의 장소"발견에 대한 File::HomeDir에 대한 Storable를 사용

use File::HomeDir; 
use FindBin qw($Script); 
use Storable qw(nstore); 

# Generate absolute path like: 
# /home/stas/.local/share/script.pl.data 
my $file = File::Spec->catfile(File::HomeDir->my_data(), "$Script.data"); 

# Network order for better endianess compatibility 
nstore \%table, $file; 
$hashref = retrieve($file); 
+0

거기에는 많은 파일들이 저장되어있는 OS와 장소가 많이 있습니다. 그래서 나는 그 부분을 직접하고 싶지 않습니다. – Andreas

+0

죄송 합니다만, 저장 장소를 결정할 수있는 휴대 가능한 방법이 필요하다는 것을 눈치 채지 못했습니다. 필요에 더 맞는 내 대답을 편집했습니다. – creaktive

0

가장 손쉬운 방법은 손으로 구르는 것보다는 내가 DBM::Deep을 사용하는 것입니다.

내가이 모듈에 관해 게시 할 때마다 나는 싫어하는 게시물이 너무 느려서 응답하지 않으므로 그렇게하지 마십시오.