Perltidy and MojoMojo

Overview

The MojoMojo code base currently has some basic syntax formatting guidelines1. For example, the indent level is four spaces, and hardcoded tabs are not used (instead they should be converted to 4 spaces). We are considering a more general tidiness to the code. Specifically, the use of perltidy in its default mode has been encouraged2. perltidy's default behavior brings up some interesting points for discussion. A few of these points are introduced in this article. Jam Tangan Murah timbangan Penumbuh Rambut Bisnis Modal Kecil

Line Length

One of the things perltidy enforces is a limited line length. The default line length is 80 characters. MojoMojo developers are considering other choices such as 115 characters3.

  • "i mean mostly everybody got a widescreen today, even on notebooks. And we don't have 640x480 anymore, so i think raising that level-80-thing from 199x up to 120 is a good thing" - plu

When lines exceed the maximum length, perltidy attempts to choose good break points4. The break point decision can have interesting effects.

Line Break Effects

The process of breaking long lines into smaller ones can exhibit interesting behavior. For example a statement with inline comments that exceeds 80 characters may put the statement's terminating semi-colon on the line after the statement:

Statement Ending Semi-Colon Example

my $original_formatter
  ;    # used to save/restore whatever formatter is set up in mojomojo.db
my $c;       # the Catalyst object of this live server

While this is perfectly valid syntax, it may tweak some people's flavor buds:

No improvements

Code before perltidy

$test = "this string will still have more than 80 characters if it's moved to the next line";

if (...) {
   $test = '[div] with non-standard HTML attribute> in a code span - the HTML scrubber should leave this alone';
}

After perltidy with the default line length of 80 chars:

$test =
"this string will still have more than 80 characters if it's moved to the next line";

if (...) {
   $test =
'[div] with non-standard HTML attribute> in a code span - the HTML scrubber should leave this alone';
}

Note that in both cases, the strings are still longer than 80 characters, but perlstyle indenting has been broken. In the second case, it's particularly odd, as the string starts at column 1, while the block itself is indented one level.

Possible Solutions

  • Don't write inline comments that exceed the maximum line length.
  • Use a pure comment line above the statement.
  • Don't use perltidy.
  • Live with it.

Blank Line Before Comments

perltidy puts a blank line before comments.

Effects on Sandwiching Code with Comments

Given the newline before comments, perltidy will alter the following:

 #-------------------------------------------------------------------------------
 $test    = 'unpassable test';
 #-------------------------------------------------------------------------------

to be:

 #-------------------------------------------------------------------------------
 $test    = 'unpassable test';

 #-------------------------------------------------------------------------------

Possible Solutions

  • Turn off default behavior of newlines before comments. How?
  • Modify or give up the sandwich technique.

Comment Line Indentation Level

Comment lines will indent to their block level as much as they can based on their length. For example a comment line of 80 characters will not indent at all, but a comment line of length 77 will be indented 3 spaces by perltidy if found in { }.

Jasa SEO Jasa SEO Murah Jasa SEO Murah Jasa SEO Jasa Adwords Jasa Google Adwords Google Adwords Sepatu Online Toko Sepatu Online Sepatu Sepatu Murah Sepatu Safety Sepatu Futsal Cheapes Hostgator Coupon Link Booking Televisori offerte Notebook Offerte Berita Terkini Internet Marketer Muda Internet Marketer Indonesia Portatile Apple RDAnet Lorks Karikatur Bisnis Modal Kecil Bisnis UKM Berita Terbaru Iklan Baris Jasa SEO Jasa SEO Murah SEO Indonesia Konsultan SEO SEO Belajar SEO Kursus SEO Kursus SEO Murah Jam Tangan Casio Jam Tangan Casio villa bali seminyak accommodation seminyak villa rental villa ubud bali villa in seminyak bali driver
seminyak villa pemanas air pulau tidung jam tangan tas branded rental mobil semarang kursi roda jual kursi roda souvenir jogja dealer daihatsu depok dealer daihatsu tangerang tutorial wordpress :: Hot News :: Toko Bunga :: Online Store :: Seminyak bali :: Grosir Baju muslim :: Grosir Baju Batik :: Hosting Murah :: Villa Bali rental :: Group Om Onny :: Jawara Iklan :: Jago Iklan :: Jasa Iklan :: Juara Iklan :: Jawa Iklan :: Jaringan Iklan :: Jaguar Iklan :: All Iklan :: Directory :: Tas Branded :: Souvenir Pernikahan :: Busana Online :: Review :: Naila :: Naura :: Karangan Bunga Pekanbaru :: Karangan Bunga Medan :: Toko Parcel Medan :: Toko Parcel Surabaya :: Toko Parcel Jogja :: Serba-serbi :: Toko Parcel :: Berita Unik :: Toko Abon :: Tips :: Blog :: All tips :: Coba :: sinergi :: bisnis :: om onny jasa seo jasa seo murah jasa seo jasa seo murah jasa seo murah jasa seo murah jasa seo murah Jam Tangan Murah Jam Tangan Grosir Baju Terbaru Grosir Baju Baju Terbaru Grosir Baju Murah Bisnis Online Belajar SEO Kerupuk Kerupuk kulit Social Bookmark Dofollow Social Bookmark Kumpulan Puisi Kirim Puisi Penumbuh Rambut Penumbuh Rambut timbangan WBC Wonogiri Jasa SEO Murah Jasa SEO Jam Tangan Murah Jam Tangan Murah Kata Gaul

Cupu Berita Terbaru Android Store Upinson Berita Terkini Edo Ziedo Aplikasi Symbian Sepatu Safety Upin Upin Tablet Android Sepatu Murah Upinson Blogger Radio Streaming SEO Star Upinson Cinta EDU Jasa SEO Sepatu Murah Sepatu Murah Sepatu Murah Penumbuh Rambut Penumbuh Rambut Penumbuh Rambut Penumbuh Rambut Penumbuh Rambut Penumbuh Rambut Penumbuh Rambut

Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman Laku.com Belanja Online Grosir Eceran Murah dan Aman


  1. An initial opinion of syntax guidelines is available for discussion. ↩

  2. irc log - "15:45 <marcus> yeah, feel free to run perltidy on anything mojomojo" ↩

  3. One can set the line lenght with: perltidy --perl-best-practices -l=115 ↩

  4. Certain long lines will not break. For example, strings or heredoc lines.  ↩

My tags:
 
Popular tags:
 
Powered by Catalyst