<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>mishin</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mishin/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/mishin/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/mishin//781</id>
    <updated>2011-12-26T13:28:57Z</updated>
    <subtitle>A blog about the Perl programming language</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>Convert perl var to yaml</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/mishin/2011/12/convert-perl-var-to-yaml.html" />
    <id>tag:blogs.perl.org,2011:/users/mishin//781.2612</id>

    <published>2011-12-26T13:05:10Z</published>
    <updated>2011-12-26T13:28:57Z</updated>

    <summary>I like yaml so use some idea from Devel-Refactor I write converter perl var to yaml #!/usr/bin/env perl ###################################### # $URL: http://mishin.narod.ru $ # $Date: 2011-12-23 19:53:20 +0300 (Web, 14 Sep 2011) $ # $Author: mishin nikolay $ # $Revision:...</summary>
    <author>
        <name>mishin</name>
        <uri>http://blogs.perl.org/users/mishin/</uri>
    </author>
    
    <category term="perlyaml" label="perl yaml" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/mishin/">
        <![CDATA[<p>I like yaml so use some idea from Devel-Refactor<br />
I write converter perl var to <br />
<a href="http://codepad.org/fFX5RMIA">yaml</a></p>

<p>#!/usr/bin/env perl<br />
######################################<br />
#      $URL: http://mishin.narod.ru $<br />
#     $Date: 2011-12-23 19:53:20 +0300 (Web, 14 Sep 2011) $<br />
#   $Author: mishin nikolay $<br />
# $Revision: 1.02 $<br />
#   $Source: convert_var_to_yaml.pl $<br />
#   $Description: convert perl variables to yaml format $<br />
##############################################################################<br />
#use YAML::Tiny;<br />
#use FindBin '$Bin';<br />
#my $config_name = 'config.yml';<br />
#my $yaml          = YAML::Tiny::LoadFile( $Bin . qq{/} . $config_name );<br />
#use Smart::Comments;<br />
my @input_data = <DATA>;<br />
#my $self;</p>

<p>#print ext('my $count_xml     = 10000;');<br />
my @data_in_yaml = map { extract_var($_) } @input_data;<br />
print join '', @data_in_yaml;<br />
my @data_get_yaml = map { invoke_yaml($_) } @input_data;<br />
print join '', @data_get_yaml;</p>

<p>sub extract_var {<br />
    my ($string) = @_;<br />
    $reg = '\s*my\s*[\$\@]+(\w+)\s*=\s*([^; ]+)\s*;';<br />
    if ( $string =~ /$reg/g ) {<br />
        $var = $1;<br />
        $value = $2;<br />
    }<br />
    return $var . ': ' . $value . "\n";<br />
}</p>

<p>sub invoke_yaml {<br />
    my ($string) = @_;<br />
    my $yaml_row;<br />
    $reg = '\s*(my\s*[\$\@](\w+)\s*=)\s*([^; ]+)\s*;';<br />
    if ( $string =~ /$reg/g ) {<br />
        $var = $1;<br />
        $val_name = $2;<br />
        $yaml_row = $var . '$yaml->{' . $val_name . '};';<br />
    }<br />
    return $yaml_row . "\n";<br />
}</p>

<p>__DATA__<br />
my $count_xml     = 10000;<br />
my $test_file     = 'test_message.xml';<br />
my $orig_idx_file = 'orig_test_message.xml.idx';<br />
my $commit_size   = 1000;<br />
</p>]]>
        
    </content>
</entry>

</feed>
