# File lib/backports/tools/io.rb, line 32
  def self.combine_mode_perm_and_option(mode = nil, perm = Backports::Undefined, options = Backports::Undefined)
    mode, options = nil, mode if mode.respond_to?(:to_hash) && perm == Backports::Undefined
    perm, options = nil, perm if perm.respond_to?(:to_hash) && options == Backports::Undefined
    perm = nil if perm == Backports::Undefined
    options = {} if options == Backports::Undefined
    options = coerce_to_hash(options)
    if perm && options[:perm]
      raise ArgumentError, "perm specified twice"
    end
    [combine_mode_and_option(mode, options), perm || options[:perm]]
  end