Can someone tell me how to do this best way?

I have no idea about what your are doing, an don't know of the context.
But to make your code more readable, get your indenting right. If you are lazy, use perltidy. And it's prettify.

use strict; use utf8; use warnings; use Mojo::JSON qw|from_json|; use bytes; use MBclient; sub new { ... .; } sub _device_read { # $d as data # $mbc as ModBusControl # $r as response my ( $d, $mbc, $r ) = ( shift, MBclient->new(), undef ); # parse device config $d->{regs} = from_json( $d->{regs} ); # setup device attributes $mbc->host( $d->{ip} ); $mbc->port( $d->{port} ); $mbc->unit_id(0); # by default. # for all specified registers foreach my $reg ( keys %{ $d->{regs}->{r} } ) { $r->{$reg} = _prettify_byte( # read data from device registers $mbc->read_input_registers( # converting text register address to hex hex($reg), # specify number of registers to read $d->{regs}->{r}->{$reg} ) ); } return ($r); } # converts from hex data to deximal # recieve output from modbus sensors sub _prettify_byte { # okay state of deal return ( sprintf( '%.2f', unpack( 'f', pack( 's2', @{ $_[0] }[ 1, 0 ] ) + ) ) ) if ( $_[0] ); #return error message return ( $c{_err_} ); }
perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'

In reply to Re: Way to make this code better. by shmem
in thread Way to make this code better. by builat

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.