乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
perl 3.02 巧用 Data::Dumper 导入导出结构化数据
2016-03-28 11:43:59
73
0
0
admin
>写脚本时我们时常需要将一些数据写入文件,让其它进程来读,这时候一般会使用JSON,XML之类的方式来做数据结构化后再写入文件(http://112.124.124.111/blog/post/admin/%E7%94%A8JSON-XML)。 但是用这种方法需要安装相应的模块,有依赖性问题。其实这时候我们还有另外一个选择,用perl Data::Dumper(一般会和perl一起装)和eval 来做这些事情。 #直接上code 写数据的脚本 ```perl #!/usr/bin/perl use warnings; use strict; use Data::Dumper; my $config; $config->{'app'} = "app"; $config->{'host'} -> {'ip'} = "127.0.0.1"; $config->{'host'} -> {'name'} = "localhost"; $config->{'limit'} = 3; print Dumper $config; ``` 运行结果: ```bash [root@test perl]# ./dumper_hash.pl $VAR1 = { 'app' => 'app', 'limit' => 3, 'host' => { 'ip' => '127.0.0.1', 'name' => 'localhost' } }; [root@test perl]# ./dumper_hash.pl > ./file #写入“配置文件” ``` 读数据的脚本: ```perl #!/usr/bin/perl use warnings; use strict; use Data::Dumper; my $open; open $open, " < ./$ARGV[0] " or die $!; #把整个文件读进来 undef $/; my $string = <$open>; $/ = "\n"; #读数据的子方法,直接运行dummper 出来的数据 sub get_data { my ($str) = @_; my $VAR1; eval "$str"; return $VAR1; } #获得数据 my $data = &get_data($string); print Dumper $data; ``` 运行结果: ```bash [root@test perl]# ./read_hash.pl ./file $VAR1 = { 'app' => 'app', 'limit' => 3, 'host' => { 'ip' => '127.0.0.1', 'name' => 'localhost' } }; ```
上一篇:
perl 3.01 用JSON/XML 格式导入导出数据
下一篇:
perl 3.03 用URI::Escape处理URI 中的特殊字符
文档导航